在 Java 中,Field(字段)通常指的是类或接口中定义的成员变量,也就是属性。它是 Java 反射(Reflection)体系中的一个重要概念。
**Field(字段)**包括:
例如:
class Person {
private String name; // 实例字段
public int age; // 实例字段
public static String type = "Human"; // 静态字段
}
这里的 name、age、type 都是 Field。
在 java.lang.reflect.Field 类中,Field 代表类中的一个属性,可以用来:
Class<?> clazz = Person.class;
Field field = clazz.getDeclaredField("name");
常用方法:
| 方法 | 说明 |
|---|---|
getField(name) |
获取 public 字段(含父类) |
getDeclaredField(name) |
获取本类声明的字段(含 private) |
getFields() |
获取所有 public 字段 |
getDeclaredFields() |
获取本类所有字段 |
Field field = Person.class.getDeclaredField("name");
System.out.println(field.getName()); // name
System.out.println(field.getType()); // class java.lang.String
System.out.println(Modifier.toString(field.getModifiers())); // private
Person p = new Person();
p.name = "Tom";
Field field = Person.class.getDeclaredField("name");
field.setAccessible(true); // 解除 private 限制
Object value = field.get(p);
System.out.println(value); // Tom
Field field = Person.class.getDeclaredField("name");
field.setAccessible(true);
field.set(p, "Jerry");
| 概念 | 说明 |
|---|---|
| 成员变量 | 类中的变量(广义) |
| Field | 反射层面的成员变量 |
| 属性(Property) | 通常指 getter/setter 对应的字段(JavaBean 概念) |
⚠️ 注意:
Java 本身没有“属性”这个关键字,属性是 JavaBean 规范中的概念。
✅ Field 就是类中的变量
✅ 在反射中,Field 是一个对象,用来描述字段
✅ 可以读取、修改字段,甚至访问 private 字段
如果你愿意,我也可以讲:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。