我有以下代码。在运行时,typeClassz
是java.util.Set
。但是ParameterizedType的typeClassz instance评估为false。对于java.util.Set
,它转到else子句。有任何想法吗 ?
final Type typeClassz = methods.get(index).getParameterTypes()[0];
if(typeClassz instanceof ParameterizedType){
final ParameterizedType classType = (ParameterizedType) ((ParameterizedType) typeClassz).getActualTypeArguments()[0];
return mongoTemplate.findOne(query, (Class<?>) classType.getRawType());
}else{
return mongoTemplate.findOne(query, (Class<?>) typeClassz);
}
最佳答案
Method.getParameterTypes()
返回Class<?>[]
,因此您的typeClassz
只能是Class<?>
,而不能是ParameterizedType
。
您应该改用getGenericParameterTypes()
,它返回一个Type[]
。
关于java - java.util.Set无法通过ParameterizedType检查,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44970936/