为什么这段代码没有显示任何编译错误?
public class Generic { public static void main(String[] args) { Character[] arr3={'a','b','c','d','e','f','g'}; Integer a=97; System.out.println(Non_genre.genMethod(a,arr3)); } } class Non_genre { static<T> boolean genMethod(T x,T[] y) { int flag=0; for(T r:y) { if(r==x) flag++; } if(flag==0) return false; return true; } }
如果我们写这样的普通代码(如下所示)
public class Hello { public static void main(String[] args) { Character arr=65; Integer a='A'; if(arr==a) //Compilation Error,shows Incompatible types Integer and Character System.out.println("True"); } }
那么为什么上面的上面运行正常,T怎么可能是Integer类和T的数组同时是Character类,如果它的运行然后为什么它不打印为true,’a’的ASCII vaue是97,所以它应该打印真实.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。