class ReflectionClass{
public static void anyMethod(Type type){
if(type instanceof GenericArrayType){
// some code
}
}
}
class Client{
public static void main(String[] args){
anyMethod(...);
}
}
我试图在 if(type instanceof GenericArrayType)
语句中接收“真”值。
那么,我应该将什么作为参数放入 Client 类中的 anyMethod 方法调用中?
来自关于 GenericArrayType interface 的 Oracle 文档:
GenericArrayType represents an array type whose component type is either a parameterized type or a type variable.
但是,我也知道我不能从 here 创建参数化类型的数组
那么,我该如何实现呢?
最佳答案
在属于通用数组类型的任何方法、字段等上使用反射。
例如,List.toArray(T[]) -> T[]
List.class.getMethod("toArray", Object[].class).getGenericReturnType();
或者自己声明一个泛型数组,反射(reflection)一下
public List<String>[] array;
MyClass.class.getField("array").getGenericType()
关于java - GenericArrayType 接口(interface)的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32206811/