【问题标题】:java.lang.Object[] cannot be converted to java.lang.String[] [closed]java.lang.Object[] 无法转换为 java.lang.String[] [关闭]
【发布时间】:2016-01-17 02:21:04
【问题描述】:

我是 Java 新手。我有一个字符串的 HashSet,我正在尝试将包含的内容转换为字符串 []。我按照这里的解决方案Converting from HashSet<String> to String[] 但还是报错。这是我的代码:

Set set = new HashSet<String>();
// Add elements into set
// ...
String[] words = set.toArray(new String[set.size()]);

我得到的错误是“不兼容的类型:java.lang.Object[] 无法转换为 java.lang.String[]”

【问题讨论】:

  • 为什么不将集合声明为最初的字符串集?:Set&lt;String&gt; 例如,Set&lt;String&gt; set = new HashSet&lt;&gt;();
  • @ZigZagZebra 不要混合使用原始类型和泛型。

标签: java arrays string hashset


【解决方案1】:

使用显而易见的解决方案:只需将其设为通用 Set&lt;String&gt;

Set<String> set = new HashSet<>();

【讨论】:

  • 你能告诉我为什么将 set.toArray() 转换为 (String[]) 是不可接受的吗?我删除了我的说法,因为它被否决了
  • @JRowan:OP 已经在使用泛型但不完全,如果你投了你失去了使用泛型的主要原因——你失去了编译时类型检查。因此,如果您已经在使用泛型,更好的答案是正确使用它们,而不是强制转换。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多