【问题标题】:Java with Eclipse: Type Safety: The Expression of type map needs unchecked conversion to confirm to Map<String,String>Java with Eclipse: Type Safety: The Expression of type map requires unchecked conversion to Confirm to Map<String,String>
【发布时间】:2020-05-21 10:00:35
【问题描述】:

如何使用Eclipse 删除Java 中跟随“地图”的类型安全标记?

Map<String, String> errorStatus = exchange.getIn().getHeader("totalCount", Map.class);

它打印以下消息。

The Expression of type map needs unchecked conversion to confirm to Map<String,String>

更新

getIn() 和 getHeader 是内置的 Camel 方法。在一条路线中,我有 setHeader("headerkey",mapOfErrors) 并且当我进一步需要这个错误键时,我只是使用这些函数从 Camel Message 中获取它。 以下是 getHeader() 的可用参数:

【问题讨论】:

  • 这看起来像是“你不能”的情况之一,因为 Java 类型系统的固有缺陷。但我不能确定这么少的信息。
  • @Amongalen 你什么时候可以做Map&lt;String,String&gt;.class
  • @Amongalen 试试看。
  • 如果不是那么我应该像 Map 那样写它来代替 Map
  • @fatherazrael 不,您仍应使用Map&lt;String, String&gt;。如果这真的是“你不能”的情况之一,你可以输入@SuppressWarnings。但正如我所说,除非您告诉我更多信息,否则我无法确定。 例如,getHeader 是什么? getIn 是什么? 你在做什么?

标签: java eclipse generics apache-camel type-safety


【解决方案1】:

如您所知,没有Map&lt;String,String&gt;.class,所以据我所知,对于您的情况,您有两种选择: 首先创建一个包装类来扩展 HashMap,你可以使用 Wapper.class,我不推荐

WrapperClass errorStatus = exchange.getIn().getHeader("totalCount", Wrapper.class);

第二种方法只是忽略此警告并使用@SuppressWarnings("unchecked")

【讨论】:

    猜你喜欢
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2023-01-13
    • 2022-12-02
    • 2016-05-27
    • 2022-11-30
    • 1970-01-01
    相关资源
    最近更新 更多