【问题标题】:java - how to remove generic cast warning? [duplicate]java - 如何删除通用强制转换警告? [复制]
【发布时间】:2014-05-13 10:25:38
【问题描述】:

我必须对某些方法使用 cls 变量。

Class<CommonResult<Cat>> cls = (Class<CommonResult<Cat>>) ((Class) CommonResult.class);

但是,此代码行显示此警告。

  • 类是原始类型。对泛型类的引用应该被参数化
  • 类型安全:从 Class 到未经检查的强制转换

CommonResult 是泛型类。 我想删除这些警告。删除此警告的最佳修改是什么? 我想知道一种在代码级别而不是在注释中修复它的方法。

【问题讨论】:

  • 我不相信建议的副本是正确的,我已经重新打开了。或许@SuppressWarnings 是唯一的选择,但我希望看到有人明确声明这段代码只能通过该解决方案来解决。
  • 该方法采用 Class 类参数。所以我想传递 cls 变量。提前谢谢你。
  • 如果您对未经检查的警告没有问题,只需使用原始的,您可以使用(Class&lt;?&gt;) 进行内部转换。

标签: java generics casting


【解决方案1】:

我认为这个问题就是你的答案:What is SuppressWarnings ("unchecked") in Java?,而你的问题就是那个问题的答案:-)

至于您列出的前 2 个警告 - “类是原始类型”警告可能源于您首先转换为 Class 的事实。有必要吗?第二项读起来不像是警告。 “parseGetGrantedPermission(String)”应该是什么?它看起来更像是您产生警告的方法。

【讨论】:

  • 我想在代码级别而不是注释中修改它。你知道另一种解决方法吗?
猜你喜欢
  • 1970-01-01
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
相关资源
最近更新 更多