1、java代码
public class TestContains {
public static void main(String[] args) {
//类型为int
int i = 1;
//泛型为String
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
System.out.println(list.contains(i));//false
}
}
2、scala代码
object TestArrContains {
def main(args: Array[String]): Unit = {
val arr = "1,2".split(",")
val a:Int = 1
println(arr.contains(a))//false
}
}
注意:代码多了,比较容易出现的错误,而开发工具又没有提示类型不一致错误,很容易忽略
本来想得到的结果为true,却发现为false。
查看java源码:
boolean contains(Object o);
发现方法内部为Object
查看scala源码
def contains(elem: Any): Boolean = exists (_ == elem)
方法内部为Any
也难怪开发工具不提示错误