我试图获得一个条件,以评估为假。我有一个字段,它是我通过查看declaredFields
获得的地图。 Map参数化类型type
是什么会导致条件为假?
// field is a Map from a class using reflection (declaredFields)
Type type = ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[i]
if (type instanceof Class) {
everthingsAClass()
} else {
whatIsntAClass()
}
最佳答案
除了Class
之外,还有许多非公共类可以间接实现Type
。
例如,sun.reflect.generics.reflectiveObjects.TypeVariableImpl
实现TypeVariable
,它是扩展Type
的接口。
其他示例包括GenericArrayTypeImpl
,ParameterizedTypeImpl
和WildcardTypeImpl
。
这些类的实例可以通过各种反射API方法(例如getGenericInterfaces
的getGenericSuperclass
和Class
方法)返回。