5
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;
    }
}

このため、Eclipseで次の警告が表示されます-

クラスは生の型です。ジェネリック型クラスへの参照はパラメータ化する必要があります

これは以前の質問で尋ねられましたが、答えは Spring Framework に固有のものでした。しかし、Spring とは関係なくても、この警告が表示されます。それで、問題は何ですか?

4

3 に答える 3

9

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);
}
于 2012-08-09T13:56:46.137 に答える
1

試す

public class ListOfClasses
{

    private ArrayList<Class<?>> classes;

    public ArrayList<Class<?>> getClasses() 
    {
        return classes;
    }

    public void setClasses(ArrayList<Class<?>> classes) 
    {
        this.classes = classes;
    }
}

クラスもパラメーター化された型であり、型引数を宣言しないと、パラメーター化された型が期待される場所で生の型を使用するという警告が表示されます。

于 2012-08-09T13:56:18.030 に答える