您好我有一个代码安静的编译问题。如何对数据变量执行安全添加?
import java.util.*;
public class Foo
{
private TreeSet<? extends Collection<String>> data;
public Foo()
{
data = new TreeSet<ArrayList<String>>();
data.add("Goofy"); //this action generates a compile error
}
}
答案 0 :(得分:10)
您正在尝试将String
添加到TreeSet
ArrayLists
个String
中。您需要添加ArrayList
。大概
ArrayList<String> list = new ArrayList<>();
list.add("Goofy");
data.add(list);
也就是说,假设你没有使用过于复杂的设计,你很可能就是这样。
答案 1 :(得分:1)
data是ArrayList的集合,您正在尝试添加String
您需要先将String添加到数组列表
ArrayList<String> list = new ArrayList<String>();
list.add("Goofy");
data.add(list);
或将数据更改为字符串TreeSet
private TreeSet<String> data;
data = new TreeSet<String>();
data.add("Goofy");