Java反射获取Class文件对象3种方法




测试类:

public class TestClass {

public static void main(String[] args) throws Exception {
Student stu = new Student();
// 1 通过对象.getClass()的方式获取
Class<?> c1 = stu.getClass();
System.out.println(c1);
// 2直接通过类.class的方式获取
Class<?> c2 = Student.class;
System.out.println(c2);
// 3通过Class.forname(全路径)的方式来获取
Class<?> c3 = Class.forName("com.fanshe.test.Student");
System.out.println(c3);


System.out.println("--------------------------------------");
System.out.println("获取类的全称:" + c3.getName());
System.out.println("获取类的简称:" + c3.getSimpleName());
System.out.println("判断是不是枚举:" + c3.isEnum());
System.out.println("判断是不是接口:" + c3.isInterface());
System.out.println("获取类的访问修饰符:" + c3.getModifiers());
System.out.println("解析后的修饰符:" + Modifier.toString(c3.getModifiers()));
System.out.println("获取父类的信息:"+c3.getSuperclass().getSimpleName());


}


}

Student类:

package com.fanshe.test;


public final class Student extends Person {
private String name;
public int age;
protected double score;
String sex;


public Student() {
super();
// TODO Auto-generated constructor stub
}


public Student(int id, String coure, String name, int age, double score,
String sex) {
super(id, coure);
this.name = name;
this.age = age;
this.score = score;
this.sex = sex;
}


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;
}


public double getScore() {
return score;
}


public void setScore(double score) {
this.score = score;
}


public String getSex() {
return sex;
}


public void setSex(String sex) {
this.sex = sex;
}


}

猜你喜欢

转载自blog.csdn.net/xiaodongge521/article/details/70175097