GenericArrayType接口实例


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()

相关内容

  • 没有找到相关文章

最新更新