我不是一个java人,所以我不确定这只是一个语言问题.
我正在写一个Android应用程序.在应用程序的某一点上,我将与intgers(版本号)进行比较,以查看他们正在使用的应用程序的版本,如果它们不是最新的,则执行某些 *** 作.我注意到我的动作代码一直在运行.所以我检查了一个调试器,我在哪里检查它们是否正在运行正确的版本,我有这样的代码:
if (savedVersionCode != currentVersionCode){ //perform work}
savedVersionCode和currentVersionCode都是整数,并且等于相同的值(在这种情况下为226),但它仍会跳入并执行工作.
我注意到虽然这些值都是226,但每个整数(如果你在eclipse中检查它)都有一个ID,它们都是不同的.
关于最新情况的任何想法?
解决方法:
如果它们是整数值,则您要比较参考.两个不同的对象可以有效地表示相同的数字.尝试:
if (savedVersionCode.intValue() != currentVersionCode.intValue())
要么
if (!savedVersionCode.equals(currentVersionCode))
请注意,您可能使用较低的数字进行管理,因为自动装箱将返回大约0小范围内的数字的相同参考.例如:
Integer x = 5;Integer y = 5;System.out.println(x == y); // Prints truex = 1000;y = 1000;System.out.println(x == y); // *Could* print true, but probably won't
总结 以上是内存溢出为你收集整理的java – Android两个具有相同值的整数不能正确等同全部内容,希望文章能够帮你解决java – Android两个具有相同值的整数不能正确等同所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)