java 反射 私有变量_反射-私有变量/私有方法-Java

1 import java.lang.reflect.Field;

2 import java.lang.reflect.InvocationTargetException;

3 import java.lang.reflect.Method;

4

5 /**

6 * Created with IDEA

7 * author:foreign

8 * Date:2019/9/30

9 * Time:10:40

10 */

11 public class ReflectionFk {

12 public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {

13 PersonFk personFk = new PersonFk();

14 personFk.setName("foreign");

15

16 Class clazz = PersonFk.class;

17 //1 获取全部private变量

18 Field[] declaredFields = clazz.getDeclaredFields();

19 for (Field field : declaredFields) {

20 field.setAccessible(true);

21 System.out.println("获取private字段:" + field);

22 }

23 //1.1 获取指定的private变量

24 Field name = clazz.getDeclaredField("name");

25 name.setAccessible(true);

26 String str = (String) name.get(personFk);

27 System.out.println("name字段值:" + str);

28

29 //2 获取全部private方法

30 Method[] declaredMethods = clazz.getDeclaredMethods();

31 for (Method method : declaredMethods) {

32 method.setAccessible(true);

33 System.out.println("获取private方法: " + method);

34 }

35 //2.1 获取指定private方法

36 PersonFk personFk1 = new PersonFk("123");

37 Method getDepartmentId = clazz.getDeclaredMethod("getDepartmentId", null);

38 getDepartmentId.setAccessible(true);

39 String returnStr = (String) getDepartmentId.invoke(personFk1, null);

40 System.out.println("获取指定的private方法:" + returnStr);

41 }

42 }

实体类

1 /**

2 * Created with IDEA

3 * author:foreign

4 * Date:2019/9/30

5 * Time:10:39

6 */

7 public class PersonFk {

8 private String name;

9 private Integer age;

10 private Boolean gender;

11 public String desc;

12 private String departmentId;

13

14 public PersonFk(String name, Integer age, Boolean gender, String desc, String departmentId) {

15 this.name = name;

16 this.age = age;

17 this.gender = gender;

18 this.desc = desc;

19 this.departmentId = departmentId;

20 }

21

22 public PersonFk(String departmentId) {

23 this.departmentId = departmentId;

24 }

25

26 public PersonFk() {

27 }

28

29 public String getName() {

30 return name;

31 }

32

33 public void setName(String name) {

34 this.name = name;

35 }

36

37 public Integer getAge() {

38 return age;

39 }

40

41 public void setAge(Integer age) {

42 this.age = age;

43 }

44

45 public Boolean getGender() {

46 return gender;

47 }

48

49 public void setGender(Boolean gender) {

50 this.gender = gender;

51 }

52

53 public String getDesc() {

54 return desc;

55 }

56

57 public void setDesc(String desc) {

58 this.desc = desc;

59 }

60

61 private String getDepartmentId() {

62 return departmentId;

63 }

64

65 public void setDepartmentId(String departmentId) {

66 this.departmentId = departmentId;

67 }

68 }

标签:反射,Java,String,私有,PersonFk,private,departmentId,public,name

来源: https://www.cnblogs.com/fangke/p/11611919.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值