• 反射_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();
            }
        }

      

  • 相关阅读:
    Jsuop Whitelist
    Conductor
    nats
    jersey
    Metrics
    OpenResty api 网关
    DHCP、DHCP Snooping及DHCP relay工作原理入门及实践(转)
    使用派生镜像(qcow2)
    websockify文档
    noVNC使用——访问多台vnc
  • 原文地址:https://www.cnblogs.com/dingjm01/p/8318109.html
Copyright © 2020-2023  润新知