Java |将项目添加到列表<?>

Java | Adding items to List<?>

我用谷歌搜索了一下,但我真的不明白该怎么做。我正在尝试将项目添加到这样的列表中:List<?>。我的代码看起来像这样:

public class Test {
    private List<?> list;

    public Test(List<?> useThisList) {
        this.list = useThisList;
    }

    public void add(Object add) {
        this.list.add(add); // this won't compile
    }
}

但是,如评论所述,该代码无法编译。我试图将其更改为:

public void add(? add) {
    this.list.add(add);
}

但是由于更明显的原因,这不会编译。 有谁知道我需要将其更改为什么才能使其正常运行?提前致谢!

顺便说一下,如果它确实有效,您应该可以这样做:

List<String> list = new ArrayList<String>();
new Test(list).add("hello");

使您的 Test class 通用

public class Test<E> {
    private List<E> list;

    public Test(List<E> useThisList) {
        this.list = useThisList;
    }

    public void add(E add) {
        this.list.add(add); // this will compile
    }
}

像这样实例化你的测试class

Test<String> t = new Test<String>(new ArrayList<String>());
t.add("Something");