![](/img/trans.png)
[英]How to disable warning in Eclipse - 'Class is a raw type. References to generic type Class<T> should be parameterized'
[英]Eclipse warning - Class is a raw type. References to generic type Class<T> should be parameterized
import java.util.ArrayList;
public class ListOfClasses
{
private ArrayList<Class> classes;
public ArrayList<Class> getClasses()
{
return classes;
}
public void setClasses(ArrayList<Class> classes)
{
this.classes = classes;
}
}
为此,我在日食中收到以下警告 -
类是原始类型。 应参数化对泛型类的引用
这是在之前的问题中提出的 ,但答案是针对Spring Framework的。 但即使没有与Spring有任何关系,我也会得到这个警告。 那么问题是什么?
我怀疑它抱怨Class是原始类型。 你可以试试
private List<Class<?>> classes;
或抑制此特定警告。
在这种情况下我会忽略警告。 我也会考虑使用防御性副本。
private final List<Class> classes = new ArrayList<>();
public List<Class> getClasses() {
return classes;
}
public void setClasses(List<Class> classes) {
this.classes.clear();
this.classes.addAll(classes);
}
尝试
public class ListOfClasses
{
private ArrayList<Class<?>> classes;
public ArrayList<Class<?>> getClasses()
{
return classes;
}
public void setClasses(ArrayList<Class<?>> classes)
{
this.classes = classes;
}
}
Class也是一个参数化类型,如果你没有声明一个类型参数,那么你会得到一个警告,要求使用期望参数化类型的原始类型。
问题是你不能说返回类的类型。 这个警告不是很有用。 既然你不知道它是哪种类,你就不能为它添加类型参数。 如果你这样做:
public Class<? extends Object> getClasses {}
你没有做得更好,因为除了基元之外,所有东西都扩展了Java中的Object。 我忽略了这些提示,或者转过它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.