java - 类型安全 : Unchecked cast from Object

标签 java casting type-safety unchecked

我尝试将一个对象强制转换为我的 Action 类,但它会导致警告:

Type safety: Unchecked cast from Object to Action<ClientInterface>

Action<ClientInterface> action = null;
try {
 Object o = c.newInstance();
 if (o instanceof Action<?>) {
  action = (Action<ClientInterface>) o;
 } else {
  // TODO 2 Auto-generated catch block
  throw new InstantiationException();
 }
 [...]

感谢您的帮助

最佳答案

是的 - 这是 type erasure 的自然结果.如果 o实际上是 Action<String> 的一个实例不会被 Actor 捕捉到 - 你只会在尝试使用它时看到问题,传入 ClientInterface而不是字符串。

您可以使用以下方法消除警告:

@SuppressWarnings("unchecked")

作为一个函数注解,但你不能轻易理清底层问题:(

关于java - 类型安全 : Unchecked cast from Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2592642/

相关文章:

java - 将 Play 项目部署为服务

PHP intval() 行为?

arrays - 我可以使用集合类型作为数组索引吗?

c - 这个结构指针会发生什么?

java - 使用 java 代码执行 <sql> 任务的 Ant 构建脚本

java - 创建将在 Web 浏览器中显示的 Java 小程序

java - 转换为在运行时确定的类

python - 如何通过区分类型来隔离枚举?

java - java中是否可以以20位而不是8、16、32位写入文件?

c# - 没有 I/O 的等待开销是多少?