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

本文深入探讨了Java反射API中getFields()与getDeclaredFields()方法的区别。getFields()用于获取类的所有公共字段,包括继承自父类的字段;而getDeclaredFields()则获取类本身声明的所有字段,不论其访问级别,但不包括父类字段。通过具体代码示例展示了如何使用这两个方法来操作类的字段。
1155

被折叠的 条评论
为什么被折叠?



