Java条件语句未按预期工作

时间:2016-09-02 16:09:44

标签: java android

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

enter image description here

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

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

我在跑步前清理并重建了我的项目。

更新:

当整数被硬编码时它起作用:

enter image description here

但不是在我使用输入参数时:

enter image description here

更新

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

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

在我的监视器中,我看到:position: 21, evaluates: true

但是,我永远不会调用return FOOTER_VIEW;处的断点,也不会调用与页脚视图相关的任何函数。

更新:

下载完整的适配器:https://gist.github.com/fergusom/79c6d5d9b1fd5e8348949d114a0159d5

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

2 个答案:

答案 0 :(得分:1)

给jvm没机会:

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

如果Integer构造函数失败,您将知道异常

中的值

答案 1 :(得分:1)

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