0

这看起来很简单,但我很难找到答案。我在一个类上使用 getDeclaredFields() 并且对于某些字段,它返回 Set 而不是集合中的 Class。

    for(Field f: clazz.getDeclaredFields()) {
//f is Set<Object> but f.getType() returns java.util.Set, not Object, how do I access the //Object? }
4

1 回答 1

3

如果我理解正确,您需要该字段的通用类型。

for(Field f: clazz.getDeclaredFields()) {
    Type type = f.getGenericType();
    ParameterizedType impl = (ParameterizedType) type;
    Class genericArgument = (Class) impl.getActualTypeArguments()[0];
    System.out.println(genericArgument);
}

哪个打印

class java.lang.String
于 2013-10-21T21:10:46.003 回答