简介
相同点:
- 都返回 Field 数组,即
Field[]
。
不同点:
- getFields 仅返回 public 作用域的字段。
- getDeclaredFields 返回所有作用域的字段。
代码示例
示例1
package org.example;
import java.lang.reflect.Field;
public class Main {
public static class UserInfo {
private String name01;
protected String name02;
String name03;
public String name04;
private static String name11;
protected static String name12;
static String name13;
public static String name14;
}
public static void main(String[] args) {
System.out.println("--- getFields 结果 ---");
for (Field field : UserInfo.class.getFields()) {
System.out.println(field.getName());
}
System.out.println("--- getDeclaredFields 结果 ---");
for (Field field : UserInfo.class.getDeclaredFields()) {
System.out.println(field.getName());
}
}
}
执行结果:
--- getFields 结果 ---
name04
name14
--- getDeclaredFields 结果 ---
name01
name02
name03
name04
name11
name12
name13
name14