getdeclaredfields()用法
时间: 2023-04-16 13:02:45 浏览: 246
Java中的getDeclaredFields()方法用于获取类或接口的所有声明字段(包括私有字段)。这个方法返回的是一个Field对象数组。
语法:
```java
Field[] getDeclaredFields()
```
示例:
```java
class MyClass {
private int a;
public String b;
}
MyClass obj = new MyClass();
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
System.out.println(field.getName());
}
```
输出:
```
a
b
```
注意,这个方法只能获取到当前类中定义的字段,不能获取父类中的字段。如果需要获取父类中的字段,需要使用getFields()方法。
相关问题
getDeclaredFields()
getDeclaredFields() 是 Java 反射机制中的一个方法,它用于获取一个类中声明的所有字段(包括私有字段和继承的字段),但不包括父类的字段。这个方法返回一个 Field 对象数组,其中每个 Field 对象表示一个类中的字段。
你可以使用 getDeclaredFields() 方法来获取某个类中的所有字段,并对它们进行操作,比如获取字段的名称、类型、修饰符等信息。以下是一个示例代码:
```java
import java.lang.reflect.Field;
public class ExampleClass {
private int field1;
public String field2;
protected boolean field3;
public static void main(String[] args) {
Class<?> clazz = ExampleClass.class;
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
System.out.println("Field name: " + field.getName());
System.out.println("Field type: " + field.getType());
System.out.println("Field modifiers: " + field.getModifiers());
System.out.println("------------------------");
}
}
}
```
运行上面的代码,会输出以下结果:
```
Field name: field1
Field type: int
Field modifiers: 2
------------------------
Field name: field2
Field type: class java.lang.String
Field modifiers: 1
------------------------
Field name: field3
Field type: boolean
Field modifiers: 4
------------------------
```
这个示例展示了如何使用 getDeclaredFields() 方法获取 ExampleClass 类中的所有字段,并打印出字段的名称、类型和修饰符。注意,这里的修饰符是以整数形式表示的,可以使用 Modifier 类的方法进行解析。
clazz.getDeclaredFields()
这个方法是用来获取一个类声明的所有成员变量(Field),包括 private、protected、default、public 修饰的成员变量。它返回一个 Field 类型的数组,每个元素代表一个成员变量。可以通过这个方法获取到某个类的所有成员变量,然后可以通过反射机制来获取或修改这些成员变量的值。需要注意的是,这个方法只能获取到当前类声明的成员变量,无法获取到父类或子类的成员变量。如果需要获取父类或子类的成员变量,需要使用其他方法。