java怎么遍历成员变量并且当其为null时给一个默认值
时间: 2024-02-26 18:57:21 浏览: 18
在Java中,可以使用反射机制来遍历类中的成员变量。下面是一个简单的示例代码,它可以遍历一个类中的所有成员变量并且当其为null时给一个默认值:
```java
import java.lang.reflect.*;
public class MyClass {
private Integer myInt;
private String myString;
private Boolean myBool;
public static void main(String[] args) throws IllegalAccessException {
MyClass obj = new MyClass();
Class<?> c = obj.getClass();
// 遍历成员变量并给默认值
Field[] fields = c.getDeclaredFields();
for (Field field : fields) {
if (field.get(obj) == null) {
if (field.getType() == Integer.class) {
field.set(obj, 0);
} else if (field.getType() == String.class) {
field.set(obj, "default");
} else if (field.getType() == Boolean.class) {
field.set(obj, false);
}
}
}
// 输出成员变量
System.out.println("myInt: " + obj.myInt);
System.out.println("myString: " + obj.myString);
System.out.println("myBool: " + obj.myBool);
}
}
```
该代码使用 `Class.getDeclaredFields()` 方法获取类的所有成员变量,并使用遍历循环判断每个成员变量是否为null。如果为null,则根据其类型给一个默认值。这里给出的默认值是0、"default"和false,你可以根据实际情况修改。最后,输出每个成员变量的值。注意,该代码只适用于成员变量的类型为Integer、String和Boolean的情况,如果需要支持其他类型,你需要自己添加相应的逻辑。