列出<! - ? - >添加和删除元素

时间:2013-03-21 08:07:20

标签: java bukkit

我正在编写一个bukkit插件(bukkit是一个Minecraft服务器类型;)),在那里,你有一个名为YamlConfiguration的类中有一个方法,它有以下方法:

public List<?> getList(String path)

我的问题是:我想添加和/或删除此列表中返回的元素。但是当我尝试通过

这样做时
YamlConfiguration config = YamlConfiguration.load("path/to/config.yml");
config.getList("a.path").add(new String("foo"));

eclipse因为

而抛出错误
  

方法在类型List&lt; capture#2-of?&gt;中添加(捕获#2-of?)不适用于参数(String)

我真的不知道该怎么办。 ^^“

问候。

5 个答案:

答案 0 :(得分:3)

你真的想用getList加载你的项目吗?还有getStringList(...)可用。

所以也许你可以试试:

config.getStringList("a.path").add("foo");

答案 1 :(得分:2)

List<?> list可以指向任何类型的列表,例如List<String&gt;或List<Integer&gt;或任何其他。这意味着您不知道实际列表是什么,因此您只能将null添加到此列表中。阅读本教程中的更多内容http://docs.oracle.com/javase/tutorial/extra/generics/wildcards.html

答案 2 :(得分:0)

?是表示未知类型的通配符,因为您不知道list<?>的类型,因此您无法在其中添加任何元素。

答案 3 :(得分:0)

如果您确定它返回String列表,您可以将其强制转换:

((List<String>)config.getStringList("a.path")).add("foo");

答案 4 :(得分:0)

我认为您必须将<?>替换为<Object>,然后您可以在列表中添加IntegerString等任何想法......

祝你好运:)