测试对象是否为参数类型的实例
2022-08-31 10:33:26
有没有办法确定对象是否是泛型类型的实例?
public <T> test(Object obj) {
if (obj instanceof T) {
...
}
}
这显然是行不通的。有替代方案吗?就像我想使用Java反射来实例化一个类,然后检查以确保它是泛型类型。T
有没有办法确定对象是否是泛型类型的实例?
public <T> test(Object obj) {
if (obj instanceof T) {
...
}
}
这显然是行不通的。有替代方案吗?就像我想使用Java反射来实例化一个类,然后检查以确保它是泛型类型。T
执行此检查的唯一方法是,如果您有表示该类型的对象:Class
Class<T> type; //maybe passed into the method
if ( type.isInstance(obj) ) {
//...
}
为了扩展马克·彼得斯的样本,通常你需要做这样的事情:
Class<T> type; //maybe passed to the method
if ( type.isInstance(obj) ) {
T t = type.cast(obj);
// ...
}