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)
语句中接收"真"值。
所以,我应该把什么作为一个参数调用anyMethod方法在客户端类?
从Oracle文档关于GenericArrayType接口:
GenericArrayType表示数组类型,其组件类型要么是参数化类型,要么是类型变量。
但是,我也知道我不能从这里创建参数化类型的数组
那么,我怎样才能做到这一点呢?
对任何泛型数组类型的方法、字段等使用反射
例如:List.toArray(T[]) -> T[]
List.class.getMethod("toArray", Object[].class).getGenericReturnType();
或者自己声明一个泛型数组,并反映它
public List<String>[] array;
MyClass.class.getField("array").getGenericType()