美文网首页
JAVA 泛型T V 等一些方法

JAVA 泛型T V 等一些方法

作者: 柨柨 | 来源:发表于2016-08-10 17:39 被阅读168次
public class TextClass<T> {    
private T mv;    
private Type mType;    
private void getSuperclassTypeParameter() throws IllegalAccessException, InstantiationException {        
  Type superclass = getClass().getGenericSuperclass();        
  Type[] params = ((ParameterizedType) superclass).getActualTypeArguments();        
  mv = (T) ((Class) params[0]).newInstance();   
 }    

static Type getSuperclassTypeParameter(Class<?> subclass) {        
  Type superclass = subclass.getGenericSuperclass();       
   if (superclass instanceof Class) {            
      throw new RuntimeException("Missing type parameter.");        
     }        
    ParameterizedType parameterized = (ParameterizedType) superclass;       
     return $Gson$Types.canonicalize(parameterized.getActualTypeArguments()[0]);    
}
}

待整理
public void mains123() {    Method[] methods = getClass().getDeclaredMethods();    for (Method method : methods) {        System.out.println("method:" + method.getName());// 方法名        // //////////////方法的参数        System.out.println(" paramTypeType: ");        Type[] paramTypeList = method.getGenericParameterTypes();// 方法的参数列表        for (Type paramType : paramTypeList) {            System.out.println("  " + paramType);// 参数类型            if (paramType instanceof ParameterizedType)/**//* 如果是泛型类型 */ {                Type[] types = ((ParameterizedType) paramType)                        .getActualTypeArguments();// 泛型类型列表                System.out.println("  TypeArgument: ");                for (Type type : types) {                    System.out.println("   " + type);                }            }        }        // //////////////方法的返回值        System.out.println(" returnType: ");        Type returnType = method.getGenericReturnType();// 返回类型        System.out.println("  " + returnType);        if (returnType instanceof ParameterizedType)/**//* 如果是泛型类型 */ {            Type[] types = ((ParameterizedType) returnType)                    .getActualTypeArguments();// 泛型类型列表            System.out.println("  TypeArgument: ");            for (Type type : types) {                System.out.println("   " + type);            }        }    }}

相关文章

  • JAVA 泛型T V 等一些方法

  • Java中通配符的范围上限与范围下限

    泛型中通配符 我们在定义泛型类,泛型方法,泛型接口的时候经常会碰见很多不同的通配符,比如 T,E,K,V 等等,这...

  • Java-0014-泛型

    2016.7.25 泛型?表示不确定的java类型。T 表示java类型。K V 分别代表java键值中的Ke...

  • 九、泛型

    九、泛型 尽量不要写这种有能与泛型方法重载的代码,有迷惑性 限定传入 T 的类型 泛型数组 Java 不支持泛型类...

  • Java基础(1)泛型

    1、泛型:泛化的类型,可以在调用时自己定义的一种参数类型; 2、泛型方法:public T 方法名是泛型方法...

  • Java中泛型K V T E含义

    Java中的K,V,T,E等泛型名称很多人以为是固定写法,其实这些名称是可以改的,比如改成hello,world都...

  • 泛型

    关于泛型类,泛型方法,泛型接口泛型类:public class FanXingLeiDemo {//这里是泛...

  • Java泛型: 类型擦除(type erasure)

    type erasure & reified generic Java的泛型不同于C++的模板:Java泛型是"t...

  • Java 泛型与通配符

    参考地址:《Java 泛型,你了解类型擦除吗?》 《Java中的逆变与协变》 《java 泛型中 T、E .....

  • Java泛型

    参考:Java知识点总结(Java泛型) 自定义泛型类 自定义泛型接口 非泛型类中定义泛型方法 继承泛型类 通配符...

网友评论

      本文标题:JAVA 泛型T V 等一些方法

      本文链接:https://www.haomeiwen.com/subject/idsjsttx.html