2017-07-07 3 views
2

私は以下のコードを持っています。実行時にtypeClasszjava.util.Setです。しかし、ParameterizedTypeのtypeClasszインスタンスはfalseと評価されます。 java.util.Setの場合はelse節になります。何か案は ?java.util.Set is failed ParameterizedType check

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); 
} 

答えて

6

Method.getParameterTypes()戻りClass<?>[]ので、あなたのtypeClasszだけでClass<?>、ないParameterizedTypeすることができます。

代わりにgetGenericParameterTypes()を使用してください。Type[]が返されます。

+0

愚かな私。私はいつもジェネリックメソッドを使っていて、何とかこれを完全に見逃していました。どうもありがとう :) –

関連する問題