我收到以下代码的编译错误。 ?意味着接受我们分配的任何类型的东西。我有对象类型并传递对象类型。但是为什么会出现编译错误?
NavigableSet<?> set = new TreeSet<Object>();
set.add(new Object());
最佳答案
对于变量NavigableSet<?>
, 编译器只知道它是一个 NavigableSet
,但不知道类型,因此没有对象可以安全添加。
例如,这可能是代码:
NavigableSet<?> set = new TreeSet<String>(); // ? could be String
set.add(new Object()); // can't add Object to a Set<String>
关于java - java中的泛型对象赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23294030/