getFields()与getDeclaredFields()区别;getMethods()与getDeclaredMethods()区别

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无关
*
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值