我正在编写一个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)
我真的不知道该怎么办。 ^^“
问候。
答案 0 :(得分:3)
答案 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>
,然后您可以在列表中添加Integer
,String
等任何想法......