フィールドが(この場合)Set<String>
からジェネリックの型を決定する方法である場合?Set
String
ジェネリック型を決定するこのメソッドがあります。
private boolean isSetTypeOf( Set<?> set, Class<?> clazz )
{
for ( Object object : set )
{
if ( object.getClass().equals( clazz ) )
{
return true;
}
}
return false;
}
しかし、フィールドをセットとしてキャストできないため、このメソッドは使用できません。
Field field = getTheField();
if ( ReflectionUtils.isType( field, Set.class )
{
// Error
if ( isSetTypeOf( field, clazz ) )
{
// do something
}
}
基本的に、フィールド タイプがセットであることはわかっています。セットが保持するオブジェクトのタイプを知る必要があり、その後でそのフィールドを使用します。