什么不是Java中的instanceof类?

时间:2019-07-08 16:00:08

标签: java reflection

我正在尝试获取一个条件,以评估为false。我有一个Field,它是我从查看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()
}

1 个答案:

答案 0 :(得分:2)

除了static外,还有许多非公共类可以间接实现Class

例如,Type实现sun.reflect.generics.reflectiveObjects.TypeVariableImpl,它是扩展TypeVariable的接口。

其他示例包括TypeGenericArrayTypeImplParameterizedTypeImpl

这些

这些类的实例可以通过各种反射API方法(例如WildcardTypeImpl的{​​{1}}和getGenericInterfaces方法)返回。