繁体   English   中英

Eclipse警告 - 类是原始类型。 对泛型类的引用 <T> 应该参数化

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM