错误:不兼容的类型(对于集合)

时间:2013-11-16 00:55:12

标签: java

有铸造套装吗?

我有一个构造函数,它将Set<String> things作为参数,我想将一个字段TreeSet<String> stuff设置为这个初始的东西。但是,我一直收到错误。 Java不喜欢我的声明

stuff = things;

所以我想知道是否将所有元素放入列表然后将该列表的元素移动到东西中是一个很好的解决方案,或者是否有更好的方法。

以下是我提出的建议:

public class Anagrams {
   private TreeSet<String> allWords;  

   //pre: the given dictionary must be in alphabetical order, if null throws an 
   //  illegalArgumentException
   //post: creates a new anagram solver
   public Anagrams(Set<String> dictionary) {
      if(dictionary == null) {
         throw new IllegalArgumentException();
      }
      for(String word : dictionary){
         String temp = word;
         allWords.add(word);
      }     
   }

2 个答案:

答案 0 :(得分:2)

通过从TreeSet<String>

填充新things来实例化
stuff = new TreeSet<String>(things);

答案 1 :(得分:0)

这是因为TreeSetSet的孩子,所以你不能将一个集合分配给树集(另一种方式是可能的)

因此您需要明确投射(提供thingsTreeSet<String>

stuff = (TreeSet<String>) things;