反射类方法
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 + "]";}}總結
- 上一篇: Java中的文件下载
- 下一篇: 反射类的构造方法