Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java条件语句未按预期工作_Java_Android - Fatal编程技术网

Java条件语句未按预期工作

Java条件语句未按预期工作,java,android,Java,Android,我试图覆盖getItemViewType并为我的页脚返回不同的视图类型,但函数中的整数比较失败: 此图显示了一个调试会话,其中输入位置为21,私有列表mValues的大小为21,但是当我按下“跳过”时,条件代码被跳过 如果两个整数相等,为什么position==mValues.size()返回false 在运行之前,我清理并重建了我的项目 更新: 当整数被硬编码时,它工作: 但当我使用输入参数时,情况并非如此: 更新 我添加了一个Log语句作为函数的第一行 Log.e("MYAPP", "

我试图覆盖
getItemViewType
并为我的页脚返回不同的视图类型,但函数中的整数比较失败:

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

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

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

更新:

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

但当我使用输入参数时,情况并非如此:

更新

我添加了一个Log语句作为函数的第一行

Log.e("MYAPP", "position: " + position + ", evaluates: " + (position == 21));
在我的监视器中,我看到:
位置:21,计算结果:true

但是,我在
处的断点返回页脚视图,也不会调用与页脚视图相关的任何函数

更新:

这是完整的适配器:


请注意,我首先更新了代码以计算一个
布尔值
,但是它仍然失败,即使
布尔值
在日志中打印出
真值
,jvm没有机会:

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

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

我重新启动手机,手机开始工作…

什么类型是mValues(运行时类型)?是否尝试进入mValues.size()?你能验证它返回21吗?如果我用21替换
mValues.size()
,它仍然会失败,添加了一张显示这一点的图片不要信任调试器!将logs语句放在if
内部和外部。由于代码优化,调试器可能会突出显示错误的行。实际的mValues是什么?我尝试更进一步,创建一个
布尔值
,以在条件中使用,但即使
布尔值
在日志中打印出
true
,它仍然失败。查看上一次更新的全部要点是什么?您打印了一个布尔变量,为true,但它不在if语句中?是的。似乎是我的设备出了故障。我重新启动了我的手机,它现在可以正常工作了,这很有趣:)