当前位置: 首页 > 知识库问答 >
问题:

Java条件语句未按预期工作

太叔乐家
2023-03-14

我试图重写GetItemViewType并为页脚返回不同的视图类型,但在函数中进行整数比较失败:

此图像显示了一个调试会话,其中输入位置为21,私有列表mvalues的大小为21,但是当我按下“step over”时,会跳过条件代码。

如果两个整数相等,为什么position==mvalues.size()返回false?

我在运行之前清理并重建了我的项目。

更新:

当整数被硬编码时,它可以工作:

Log.e("MYAPP", "position: " + position + ", evaluates: " + (position == 21));

这是完整的适配器:https://gist.github.com/fergusom/79C6D5D9B1FD5E8348949D114A0159D5

请注意,我首先更新了代码以计算boolean,但即使boolean在日志中打印出true,它仍然失败

共有1个答案

龚苏燕
2023-03-14

不要给jvm任何机会:

if(new Integer(position).equals(new Integer(mValues.size()))

如果整数构造函数失败,您将知道异常中的值是什么

 类似资料:
  • 我对Java很陌生,我正在努力学习。我写了少量的代码,但结果并不是我所期望的。看起来,无论我将体重设置为什么,它都不会显示“你的脂肪”上方的打印。我错过了什么? 我希望这段代码能够顺序检查每个else语句给出的int值,并打印出与int值相等的行。

  • 我正在使用spring Roo并希望访问Controller类中的一个bean,该类在ApplicationContext.xml中具有以下配置: 配置类本身是: 在我的Controller中,我认为一个简单的Autowired注释应该可以完成这项工作 在启动过程中,spring在setSkipWeeks方法中打印消息。不幸的是,每当我在控制器中调用config.getSkipWeeks()时,它

  • 当我运行以下程序时,它只打印 然而,从Java 8的equalsIgnoreCase文档中我们发现: 如果以下至少一项为真,则两个字符c1和c2被视为相同的忽略情况: •对每个字符应用java.lang.character.ToUpperCase(char)方法会产生相同的结果 所以我的问题是为什么这个程序不打印 在这两种操作中,都使用了大写字符。

  • 我试图使用来传输我根据前面的问题设置的自定义标头。 我在文件中读到... 我的属性包括:

  • 我正在和selenium一起工作,刮一些数据。 有一个按钮在页面上,我正在点击说“Custom_Cols”。这个按钮为我打开了一个窗口,我可以在那里选择我的列。 我的问题是为什么新窗口上的元素不可见,即使我正在等待元素的可见。补充一下,我已经尝试增加延迟时间,但我还是会偶尔出现这个错误。 我的密码在这里