1.Java反射机制是什么?
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
//实体
public class Student {
public String name;
private int age;
private String 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 String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Student(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public Student(){
}
}
public static void main(String[] args) {
//获取类里面的可访问的公共属性
Class c =Student.class;
Field f[]=c.getFields();
for(Field fie:f){
System.out.println(fie.getName());
}
System.out.println("1=====================");
Class c1=Student.class;
//返回类或接口所声明的所有属性,包括公共的,受保护的,默认的,私有的。但不包括继承的的
Field i[]=c1.getDeclaredFields();
for(Field field:i){
System.out.println(field.getName());
}
System.out.println("2=====================");
Class c2=Student.class;
//获取类里面可访问的公共方法(包括类或者接口声明的以及父类父接口继承的那些类或接口)
Method[] m=c2.getMethods();
for(Method method:m){
System.out.println(method.getName());
}
System.out.println("3=====================");
Class c3=Student.class;
//获取类里面的所有方法,不包括继承的方法
Method []m1=c3.getDeclaredMethods();
for(Method method1:m1){
System.out.println(method1.getName());
}
}