Android 两个具有相同值的整数不正确相等

2023-12-28

我不是java人,所以我不确定这是否只是一个语言问题。

我正在编写一个 Android 应用程序。在应用程序中的某一时刻,我会与整数(版本号)进行比较,以查看它们正在使用的应用程序版本,如果它们不是最新的,则执行某些操作。我注意到我的操作代码始终在运行。因此,我使用调试器进行了检查,并检查它们是否正在运行正确的版本,我有这样的代码:

if (savedVersionCode != currentVersionCode){
   //perform work
}

both savedVersionCode and currentVersionCode是整数并且等于相同的值(在本例中为 226),但它仍然会跳入并执行工作。

我确实注意到,虽然这些值都是 226,但每个整数(如果您在 Eclipse 中检查它)都有一个id他们都是不同的。

对这里发生的事情有什么想法吗?


如果他们是Integer值,您正在比较参考。两个不同的对象可以有效地表示相同的数字。尝试:

if (savedVersionCode.intValue() != currentVersionCode.intValue())

or

if (!savedVersionCode.equals(currentVersionCode))

请注意,您可能已经使用了较低的数字,因为自动装箱将为 0 附近的小范围内的数字返回相同的引用。例如:

Integer x = 5;
Integer y = 5;
System.out.println(x == y); // Prints true

x = 1000;
y = 1000;
System.out.println(x == y); // *Could* print true, but probably won't
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 两个具有相同值的整数不正确相等 的相关文章

随机推荐

  • PHP串口数据从Arduino返回

    我想知道是否有一种方法可以通过 PHP 读取我的串行端口 有效 在练习 Arduino 技能时 我开发了一个简单的 LED 开 关草图 它的工作原理是输入on or off在串行监视器中 下一步 我整理了一个网页作为 GUI 界面 用于单击
  • 预期响应为 <:redirect>,但实际响应为 <200>

    我的 rspec 测试遇到问题 浏览了之前的问题后我无法解决它 测试失败并出现上述错误 但代码在实践中有效 有谁知道如何解决这个问题 Rspec describe authentication of edit update pages do
  • 请求运行时权限时出现java.lang.StackOverflowError

    我创建了一个公共类PermissionManager为了从一个地方管理所有权限 通常它工作正常 但上传后它显示崩溃分析的错误报告我无法重现 详细信息如下所述 Fatal Exception java lang StackOverflowEr
  • 无法关闭 Matplotlib 中的科学计数法[重复]

    这个问题在这里已经有答案了 我使用以下代码在 Matplotlib Python 中绘制一个简单的图 temp np array 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 99999999 0 99999999 0 999
  • 多个 Eclipse IDE 应用程序未显示在 Launchpad 上

    我需要有关 Launchpad 上 Eclipse IDE 的帮助 我有 Mac OS X Yosemite 并且下载了 Eclipse IDE Java PHP 和 C C 在我提取 Eclipse IDE Java 并将其拖放到我的应用
  • 无法使用 VS 2022 调试 WSL2 - 无效的“cwd”值

    我尝试在 Windows 中使用 VS 2022 IDE 从 WSL2 进行调试 但出现以下错误 cwd 值确实看起来错误 但如何修复它 我正在使用 netcore 6 0 101 Ubuntu 20 04 3 和 Windows 11 启
  • 垂直对齐在内联块中不起作用

    我想将文本垂直居中 但是 这行不通 当我将文本放入内联块中时 我应该能够将文本垂直居中 对吧 为什么这段代码不起作用 我怎样才能使它起作用 请帮帮我 先感谢您 HTML ul class socialBlock li class socia
  • 通过点击单元格内的图像从 UITableViewCell 中转出

    我已经尝试解决这个问题有一段时间了 经过几个小时的寻找解决方案后 我决定是时候问了 我有一个由自定义 UITableViewCells 填充的表格视图 当前当您点击单元格时 它会将您带到详细视图 自定义单元格内有一个图像 我希望用户能够点击
  • ListView 显示字符串时出现问题

    任何人都可以帮助我在我的应用程序中以列表视图显示一组结果 我得到以下内容 codeList
  • 模拟挂起 lambda 在 Mockito 中返回 null

    依赖关系 testImplementation androidx arch core core testing 2 0 0 testImplementation org mockito mockito core 3 3 0 testImpl
  • 回合制多人骷髅演示应用程序

    我正在尝试让基于回合制多人游戏的演示应用程序正常工作 但遇到了问题 我已经编译并运行了代码 但每当我尝试实际连接或创建游戏时 都会收到此错误 DrawingActivity 13235 没有警告或字符串要处理 6003 该错误代码对应于此
  • 确定 CRAN 上 R 包历史版本的数量

    是否可以确定 CRAN 上的某个包过去拥有的版本数 这是一个使用XML包裹 这只是计算存档版本 更准确地说 是存档版本的数量 tar gz文件 加 1 即可得到版本总数 包括当前版本 nCRANArchived lt function pk
  • 使用相同的方法签名发布和获取

    在我的控制器中 我有两个名为 朋友 的操作 执行哪个取决于它是 get 还是 post 所以我的代码片段看起来像这样 Get AcceptVerbs HttpVerbs Get public ActionResult Friends do
  • PHP 是否有等效的forever.js 来连续运行我的脚本?

    我偶尔使用永远 js https github com nodejitsu forever用于将 CLI 类型的 Node js 应用程序快速而肮脏地部署到我不希望完全启动的生产环境中监督者 http supervisord org 部署
  • PyQt 无法识别箭头键

    我正在尝试编写一个 目前非常 简单的 PyQt 应用程序 并希望允许用户使用箭头键进行导航 而不是单击按钮 我已经实现了基础知识 并且在我的主要内容中QWidget 我覆盖keyPressEvent 现在 我所要求的就是它发出警报 QMes
  • “‘SELECT *’仅对单个输入集有效。”

    尝试学习沙箱中的查询语法 https www documentdb com sql demo https www documentdb com sql demo SELECT food id FROM food JOIN t in food
  • 使用 WPF C# 创建后台热键的正确方法? (最好不使用遗留代码)

    我需要能够为 WPF 应用程序设置后台热键事件 通过背景 我的意思是所讨论的应用程序可能不一定是焦点 我知道使用 WinForms 的正确方法是导入 user32 dll 并使用 RegisterHotKey 并捕获适当的 WM POST
  • 在一场战争中使用多个 CDI 配置文件(开发、测试版、质量保证、生产)?

    拥有使用 Spring DI applicationContext xml 声明依赖注入的方式的经验后 我现在尝试弄清楚如何使用 Java EE6 CDI 执行相同的操作 使用 Spring 我可以将我的 jar 与多个配置文件一起发送 例
  • 当 DEBUG 为 False 时错误处理程序不会触发

    我在用着错误处理程序 http flask pocoo org docs 0 10 patterns errorpages error handlers捕获并处理某些类型的异常 app errorhandler CustomExceptio
  • Android 两个具有相同值的整数不正确相等

    我不是java人 所以我不确定这是否只是一个语言问题 我正在编写一个 Android 应用程序 在应用程序中的某一时刻 我会与整数 版本号 进行比较 以查看它们正在使用的应用程序版本 如果它们不是最新的 则执行某些操作 我注意到我的操作代码