Java 在Android中,为什么ArrayList.contains(obj)总是返回false?

Java 在Android中,为什么ArrayList.contains(obj)总是返回false?,java,android,arraylist,Java,Android,Arraylist,我需要在数组中搜索一个值。我已将字符串解析为数组: List authorary=Arrays.asList(authords.split(“,”) 然后,我试图找到用户提供的作者ID: boolean authorExists=authorary.contains(authorID) 我正在记录数组值和传递的值: 09-19 17:15:23.101: D/authorArray(16561): [3, 22] 09-19 17:15:23.101: D/authorID(16561): 3

我需要在数组中搜索一个值。我已将字符串解析为数组:

List authorary=Arrays.asList(authords.split(“,”)

然后,我试图找到用户提供的作者ID:

boolean authorExists=authorary.contains(authorID)

我正在记录数组值和传递的值:

09-19 17:15:23.101: D/authorArray(16561): [3, 22]
09-19 17:15:23.101: D/authorID(16561): 3
如您所见,ID位于数组中。但是,
authorExists
将返回
false
contains()
方法使用下面的
equals()
方法来比较对象:

boolean contains(Object o)
如果此列表包含指定的元素,则返回true。更正式地说,当且仅当此列表包含至少一个元素e时(o==null?e==null:o.equals(e))返回true


得到
false
的可能原因是,传递到
contains()
中的内容不是
字符串(可能传递的是
int
?),或者是列表中不包含的
字符串,因此我假设
authorID
不是字符串


authorary.contains(authorID)authorary
包含字符串,但
authorID
不是字符串,则code>将始终返回false。

列表包含数字字符串的事实使我想知道
authorID
的类型是什么。i、 e.如果authorID是一个整数,它将始终返回false。请确保authorID也是一个整数String@teepeeSONY-文斯的评论让我意识到我的创作仍然是一个整数。这解决了问题。我有一个新的,但这是一个不同的问题,没有关系。