Java 反射面试题:getFields和getDeclaredFields区别

getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。 
getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。

代码:

import java.lang.reflect.Field;
import java.util.Arrays;

public class test2 {

    //小猫类
    class cat{

        public String name; //名字
        public String color;//颜色

        private String address;//住址

    }

    public static void main(String args[]) {

        //通过反射获取
        Class<cat> catClasse=cat.class;

        //1.
        Field[] fields=catClasse.getFields();
        Arrays.asList(fields).forEach(field -> System.out.println(field.getName()));

        System.out.println("---------------");

        //2.方式二
        Field[] declaredMethods=catClasse.getDeclaredFields();
        Arrays.asList(declaredMethods).forEach(f -> System.out.println(f.getName()));

    }
}

结果:

猜你喜欢

转载自blog.csdn.net/jack_bob/article/details/105158876