【问题标题】:How to fix incompatible types: java.lang.Object cannot be converted to java.util.List<java.lang.String> [duplicate]如何修复不兼容的类型:java.lang.Object 无法转换为 java.util.List<java.lang.String> [重复]
【发布时间】:2021-04-21 20:31:09
【问题描述】:

我有一个这样定义的哈希图,我无法更改

private Map<String, Object> attributes;

对象是一个字符串列表(有时大小 == 1,其他时候 > 1)。

我在稍后的执行中有一个 attributes 映射的实例。我想将对象作为列表。

这个:

List<String> outputs = attributes.get("keys");

抛出此错误。

incompatible types: java.lang.Object cannot be converted to java.util.List<java.lang.String>

我该如何解决?

【问题讨论】:

  • List&lt;String&gt; outputs = (List&lt;String&gt;) attributes.get("keys");

标签: java object java-8 casting


【解决方案1】:

使用显式转换:

List<String> outputs = (List<String>) attributes.get("keys");

请注意,这是一个unchecked cast,可能会在运行时抛出ClassCastException

【讨论】:

  • 你应该解释这是一个未经检查的强制转换,以及这对类型安全意味着什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
  • 2016-10-17
  • 2022-10-17
  • 1970-01-01
  • 2017-10-03
相关资源
最近更新 更多