反射类方法

来源:互联网 发布:深圳数据分析师工资 编辑:程序博客网 时间:2024/06/06 05:37
package star.july.reflect;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import org.junit.Test;import star.july.entity.Student;//反射类方法public class ClassReflect {@Testpublic void test1() throws Exception{//方法一://Class clazz = Student.class;//System.out.println(clazz);//方法二://Class clazz = new Student().getClass();//System.out.println(clazz);//方法三(推荐使用,耦合性低)Class stuCla = Class.forName("star.july.entity.Student");System.out.println(stuCla);}@Testpublic void test2() throws Exception{Class stuCla = Class.forName("star.july.entity.Student");//获得类的名称String name = stuCla.getName();//System.out.println(name);//输出:star.july.entity.Student//获得类的简称String simpleName = stuCla.getSimpleName();//System.out.println(simpleName);//输出:Student//得到当前类继承的普通父类Class superclass = stuCla.getSuperclass();//System.out.println(superclass);     //输出:class star.july.entity.Person//得到当前类继承的泛型父类Type genericSuperclass = stuCla.getGenericSuperclass();//System.out.println(genericSuperclass);   //输出:star.july.entity.Person<star.july.entity.Cat>ParameterizedType pt = (ParameterizedType)genericSuperclass;//得到参数类型中的具体的泛型Type[] ata = pt.getActualTypeArguments();System.out.println(ata[0]);//输出:star.july.entity.Cat//得到当前类的所有普通接口Class[] interfaces = stuCla.getInterfaces();Class if1 = interfaces[0];//System.out.println(if1);//输出:interface java.io.Serializable//得到当前类的所有泛型接口Type[] types = stuCla.getGenericInterfaces(); //System.out.println(types);}}



Student类:

package star.july.entity;import java.io.Serializable;public class Student extends Person<Cat> implements Serializable{private String name;private int age;public Student() {super();}public Student(String name, int age) {super();this.name = name;this.age = age;}public Student( int age) {super();this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Student [name=" + name + ", age=" + age + "]";}}


0 0
原创粉丝点击