如何测试接口Foo<;酒吧>;是";“可转让”;来自巴兹? 代码: System.out.println(compariable.isAssignableFrom(one.getClass()); 错误: comp.java:16:找不到符号 符号:方法isAssignableFrom(java.lang.Class) 位置:接口java.lang.com System.out.println(compariable.isAssignableFrom(one.getClass());

如何测试接口Foo<;酒吧>;是";“可转让”;来自巴兹? 代码: System.out.println(compariable.isAssignableFrom(one.getClass()); 错误: comp.java:16:找不到符号 符号:方法isAssignableFrom(java.lang.Class) 位置:接口java.lang.com System.out.println(compariable.isAssignableFrom(one.getClass());,java,generics,Java,Generics,如何确定某个给定类型是否可以作为SomeInterface类型的参数传递 PS:是否有一本Java参考手册/程序员手册可以在合理的时间内给我这个问题的答案(即不需要阅读数千页不相关的措辞)?目前,我发现自己是通过反复试验来编写Java的,这真的很糟糕。由于类型擦除,无法测试特定对象是否是特定泛型类型的实例(看起来就像您在这里尝试的那样)。最接近的方法是测试对象是否为原始Foo类型的实例: comp.java:16: cannot find symbol symbol : method <

如何确定某个给定类型是否可以作为SomeInterface类型的参数传递


PS:是否有一本Java参考手册/程序员手册可以在合理的时间内给我这个问题的答案(即不需要阅读数千页不相关的措辞)?目前,我发现自己是通过反复试验来编写Java的,这真的很糟糕。

由于类型擦除,无法测试特定对象是否是特定泛型类型的实例(看起来就像您在这里尝试的那样)。最接近的方法是测试对象是否为原始
Foo
类型的实例:

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()));

在你的情况下,我会说拿起任何java书籍或其他参考资料。只要专注于语言的语法,你就会得到这个问题的答案。
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()));
System.out.println(one instanceof Comparable);