System.out.println(Comparable.<Integer>isAssignableFrom(one.getClass()));
comp.java:16: cannot find symbol
symbol : method <java.lang.Integer>isAssignableFrom(java.lang.Class<capture#128
of ? extends java.lang.Integer>)
location: interface java.lang.Comparable
System.out.println(Comparable.<Integer>isAssignableFrom(one.getClass()));
如何确定某个给定类型是否可以作为SomeInterface类型的参数传递?
PS:有没有一本Java参考手册/程序员的手册可以在合理的时间内给我这个问题的答案(即不需要阅读数千页不相关的词汇)?目前我发现自己通过反复试验编写Java,这真的很糟糕。答案 0 :(得分:2)
由于类型擦除,无法测试特定对象是否是特定泛型类型的实例(它看起来就像您在此处尝试的那样)。您可以获得的最接近的是测试对象是否是原始Foo
类型的实例:
System.out.println(one instanceof Comparable);