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();
            }
        }

      

  • 相关阅读:
    sqlserver中的锁与事务
    策略模式
    异步编程
    并行聚合操作
    EF中的自动追踪与代理
    C#6.0语法糖
    EF中使用SqlQuery进行参数化查询时抛出异常
    乐观并发
    为什么那么多公司不用 .NET
    sqlserver 更改跟踪相关知识
  • 原文地址:https://www.cnblogs.com/dingjm01/p/8318109.html
Copyright © 2011-2022 走看看