【发布时间】:2014-06-18 06:40:35
【问题描述】:
想象有一个java类
public class FixedClassOfStrings {
List<String> myMember=new ArrayList<String>();
// omissed all non relevant code...
public Class getMyType() {
return String.class;
}
}
如何通过使用 java 泛型使其参数化?
我的尝试失败了:
public class GenericClass<T> {
List<T> myMember=new ArrayList<T>();
public Class getMyType() {
return T.class; // this gives "Illegal class literal for the type parameter T"
}
}
另外,我怎样才能避免警告:“类是原始类型。对泛型类的引用应该被参数化”在 FixedClassOsStrings 中?是否可以声明:
public Class<String> getMyType() {
return String.class;
}
...
如果没问题,我应该使用泛型返回什么?
public Class<T> getMyType() {
return T.class; // this gives "Illegal class literal for the type parameter T"
}
...
所有提示将不胜感激!!!
【问题讨论】:
-
T.class是一个编译时常量,我认为,但由于代码是通用的,编译器无法确定要返回什么类对象。 -
非常类似于下面的问题stackoverflow.com/questions/3437897/…
标签: java class generics types return