zoukankan      html  css  js  c++  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 }
  • 相关阅读:
    eclipse常用的快捷键
    如何保留小数点后N位?
    EditText设置/隐藏光标位置、选中文本和获取/清除焦点(转)
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo异常(转)
    STL优先队列 hdu1896
    工作排序问题 poj2376
    STL存储邻接表
    二叉树的遍历
    快速排序
    并查集 并查集来判断是否存在环路
  • 原文地址:https://www.cnblogs.com/fangke/p/11611919.html
Copyright © 2011-2022 走看看