Java反射 getDeclaredField和getField 的 区别

package com.geccocrawler.gecco.demo.test;

import java.lang.reflect.Field;

/**
 * Created by daizhao.
 * User: tony
 * Date: 2018-3-28
 * Time: 11:59
 * info:
 */
public class Test {

    private String attr;

    public String age;

    public static void main(String[] args) {

        try {

            Field privateField = Test.class.getDeclaredField("attr");
            Field publicField = Test.class.getField("age");
            System.out.println("getDeclaredFiled:" + privateField);
            System.out.println("getField:" + publicField);

            //由上打印结果分析:
            // 1.getDeclaredFiled 获取类本身的所有的属性成员
            // 2.getField         仅能获取类(及其父类可以自己测试) public属性成员

        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        }


    }
}

 

你可能感兴趣的:(Java,发射)