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

Cod*_*lue 5 java generics

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

为此,我在日食中收到以下警告 -

类是原始类型.应参数化对泛型类的引用

这是在之前的问题中提出的,但答案是针对Spring Framework的.但即使没有与Spring有任何关系,我也会得到这个警告.那么问题是什么?

Pet*_*rey 9

我怀疑它抱怨Class是原始类型.你可以试试

private List<Class<?>> classes;
Run Code Online (Sandbox Code Playgroud)

或抑制此特定警告.

在这种情况下我会忽略警告.我也会考虑使用防御性副本.

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);
}
Run Code Online (Sandbox Code Playgroud)