zoukankan      html  css  js  c++  java
  • 反射_3.深入理解Field类

    1.Field是什么?

     答:Field是JDK一个类,位于java.lang.reflect包下。 他可以保存java类中的属性

       在Java反射中 Field类描述的是类的属性信息。

    2.如何得到Field类的对象

      答:

    String.class.getDeclaredField("属性名");//可以获取私有Field对象
    String.class.getField("属性名");//不能获取私有Field对象

    3.请用反射写出一个对象获取私有属性值的案例
      

    public static void main(String[] args) {
            try {
                String str = new String("123");
                // getDeclaredField可以获取私有属性
                Field field = String.class.getDeclaredField("value");
                // 设置该属性可以被访问(如果没有这步,你拿到了Field对象但是不能拿到值)
                field.setAccessible(true);
                // 将对象传入,这里很多人会有误区,为什么要传对象,不传对象不能拿到值吗?
                // 答:不传拿不到值,因为,Class对象是单例(属于类的),你不指定对象,则拿不到值
                char[] chs = (char[]) field.get(str);
                System.out.println(Arrays.toString(chs));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

      

  • 相关阅读:
    安装RabbitMQ说明
    死锁
    管程
    MybatisPlus快速开发
    了解Mybatis-Plus
    查看监听器状态
    The command supports no service 解决办法
    任务11 Arduino光照报警器
    任务10 测试光的强度实验
    任务9 Arduino光敏实验
  • 原文地址:https://www.cnblogs.com/dingjm01/p/8318109.html
Copyright © 2011-2022 走看看