我有2个与Java泛型相关的查询
1)我是java泛型的新手。我正在尝试转换通配符,如下所示:
void meth(List<?> list) {
List<Integer> integers = (List<Integer>)list; //how to find the type of object from wildcard?
}
我想从列表中找出对象的类型
2)我有一个方法如下:
public static <T extends Number> void copy(List<T> dest, List<T> src) {
}
那么为什么我得到编译错误,而试图调用copy(整数,浮点数);怎么了?
对于#1,我看到了一些设计问题但如果你想知道类,我认为你可以使用像这样的
if(list.get(0) instanceof Integer) {
System.out.println("This is an integer");
}
对于#2,dest和src都有相同的泛型类T,如果你想让它们不同,你必须引入一个新的泛型。请试试这个
public static <T extends Number, R extends Number> void copy(List<T> dest, List<R> src) {
// your code
}