java泛型obj instanceof T

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (259)

有没有办法确定一个对象是否是一个泛型类型的实例?

if(obj instanceof T){...}

这显然不起作用。有其他选择吗?就像我想用java反射来实例化一个类,然后检查以确保它是类型通用T.

提问于
用户回答回答于

你可以做这个检查的唯一方法是如果你有Class代表类型的对象:

Class<T> type; //maybe passed into the method
if ( type.isInstance(obj) ) {
   //...
}
用户回答回答于

为了扩展Mark Peters的样本,你通常需要做如下的事情:

Class<T> type; //maybe passed to the method
if ( type.isInstance(obj) ) {
   T t = type.cast(obj);
   // ...
}

扫码关注云+社区