package study.reflection;
public class People {
public String name = null;
private String sex = null;
private String age = null;
private String tel = null;
private String address = null;
public static String s = null;
static {
System.out.println("loading People");
}
public static void showPeople() {
}
public People(String name) {
this.name = name;
}
private People() {
this.name = name;
}
private void showPeopleInfo() {
System.out.println(name + " " + sex + " " + age + " " + tel + " "
+ address);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
package esg;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import study.reflection.People;
public class Esg {
public static void main(String[] a) throws ClassNotFoundException {
Class c1 = People.class;
Field[] fs = c1.getFields();
System.out.println("*******getFields()*********");
for (int i = 0; i < fs.length; i++) {
System.out.println(fs[i].getName());
}
System.out.println("*******getDeclaredFields()*********");
fs = c1.getDeclaredFields();
for (int i = 0; i < fs.length; i++) {
System.out.println(fs[i].getName());
}
System.out.println("*******getMethods()*********");
Method[] md = c1.getMethods();
for (int i = 0; i < md.length; i++) {
System.out.println(md[i].getName());
}
System.out.println("*******getDeclaredMethods()*********");
md = c1.getDeclaredMethods();
for (int i = 0; i < md.length; i++) {
System.out.println(md[i].getName());
}
System.out.println("*******getConstructors()*********");
Constructor[] con = c1.getConstructors();
for (int i = 0; i < con.length; i++) {
System.out.println(con[i].getName());
}
System.out.println("*******getDeclaredConstructors()*********");
con = c1.getDeclaredConstructors();
for (int i = 0; i < con.length; i++) {
System.out.println(con[i].getName());
}
}
}
/**
* getFields()与getDeclaredFields()区别:getFields()只能访问类中声明为公有的字段,私有的字段它无法访问.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关
* getMethods()与getDeclaredMethods()区别:getMethods()只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方法.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法
* getConstructors()与getDeclaredConstructors()区别:getConstructors()只能访问类中声明为public的构造函数.getDeclaredConstructors()能访问类中所有的构造函数,与public,private,protect无关
*
*/
getFields()与getDeclaredFields()区别;getMethods()与getDeclaredMethods()区别
最新推荐文章于 2019-07-04 17:14:00 发布