zoukankan      html  css  js  c++  java
  • 参数化类型 即泛型 与反射 相关的方法

    Person.java

    package test;
    
    public class Person<T> {
    	
    }
    
    

    Student.java

    package test;
    
    public class Student extends Person<Student> {
    	
    }
    
    

    testmain.java

    package test;
    
    import java.lang.reflect.ParameterizedType;
    import java.lang.reflect.Type;
    
    public class testmain {
    	
    	public static void main(String[] args) {
    		Student student = new Student();
    		Class oriclass = student.getClass();
    		/**
    		 * getSuperclass() 获取该类的父类
    		 */
    		System.out.println(oriclass.getSuperclass());
    		
    		/**
    		 * getGenericSuperclass() 获取带有泛型的父类
    		 * Type 是 java 编译语言中所有类型的公共高级接口,它们包括 原始类型,参数化类型,数组类型,类型变量和基本类型
    		 */
    		Type type = oriclass.getGenericSuperclass();
    		System.out.println(type);
    		
    		/**
    		 * ParameterizedType参数化类型,即泛型  
    		 */
    		ParameterizedType p = (ParameterizedType)type;
    		/**
    		 * getActualTypeArguments获取参数化类型的数组,泛型可能有多个 
    		 */
    		Class c = (Class)p.getActualTypeArguments()[0];
    		System.out.println(c);
    		
    	}
    }
    
    
  • 相关阅读:
    【Linux】命令——基本命令
    正则表达式
    Letex
    Markdown
    文本编辑器Vim
    【Linux】集群
    【Linux】软件安装
    共线性synteny
    windows触控手势
    【Linux】bin结尾的安装包
  • 原文地址:https://www.cnblogs.com/zychengzhiit1/p/6136082.html
Copyright © 2011-2022 走看看