-1

您好,我对这种和平的代码有一个编译问题。如何安全地添加到数据变量?

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
    }
}
4

2 回答 2

10

您正在尝试将 a 添加String到 a TreeSetof s ArrayListsString您需要添加一个ArrayList. 大概

ArrayList<String> list = new ArrayList<>();
list.add("Goofy");
data.add(list);

也就是说,假设您没有使用过于复杂的设计,您很可能就是这样。

于 2013-05-24T22:18:56.453 回答
1

data 是 ArrayList 的集合,您正在尝试添加一个 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");
于 2013-05-24T22:19:33.877 回答