下面的代码怎么可能编译通过?据我所知, count 函数是用两种不同的类型调用的,但编译器并没有抱怨并愉快地编译了这段代码。
public class Test {
public static <T> int count(T[] x,T y){
int count = 0;
for(int i=0; i < x.length; i++){
if(x[i] == y) count ++;
}
return count;
}
public static void main(String[] args) {
Integer [] data = {1,2,3,1,4};
String value = "1";
int r =count(data,value);
System.out.println( r + " - " + value);
}
}
T
被强制向上Object
. The Integer[]
可以升级为Object[]
,以及String
被升级为Object
,并进行类型检查。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)