泛型强制转换报错 Unchecked cast: ‘java.lang.XXX‘ to ‘T‘

2022-06-15 11:05:36

描述

在需要强制转换为泛型的时候,编辑器会提示警告

已经看到太多文章说忽略掉警告信息了,所以写了这篇文章
在这里插入图片描述
例如如下代码:

public<TextendsComponent>TgetComponent(Entity e,Class<T> exampleClass){// 多余代码忽略T result=(T)store.get(e);return result;}

解决方案

可以使用Class.cast() 来替代强制转换

修改如下代码:

T result=(T)store.get(e);

修改成:

T result= exampleClass.cast(store.get(e));

Tips:
Class.cast() 转换失败会报ClassCastException 异常,还是需要在强转之前对于数据类型进行判断

  • 作者:assember
  • 原文链接:https://blog.csdn.net/assember/article/details/122319258
    更新时间:2022-06-15 11:05:36