如何判断一个类的哪些属性有值 请写一段案例
时间: 2023-05-17 18:06:07 浏览: 43
可以使用反射机制来判断一个类的哪些属性有值。以下是一个示例代码:
```java
import java.lang.reflect.Field;
public class ReflectionExample {
public static void main(String[] args) {
Person person = new Person("张三", 20, "男", "北京市");
printFieldsWithValue(person);
}
public static void printFieldsWithValue(Object obj) {
Class<?> clazz = obj.getClass();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
try {
Object value = field.get(obj);
if (value != null) {
System.out.println(field.getName() + " = " + value);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
private static class Person {
private String name;
private int age;
private String gender;
private String address;
public Person(String name, int age, String gender, String address) {
this.name = name;
this.age = age;
this.gender = gender;
this.address = address;
}
}
}
```
在上面的示例中,我们定义了一个 `Person` 类,它有四个属性:`name`、`age`、`gender` 和 `address`。我们创建了一个 `Person` 对象,并将其传递给 `printFieldsWithValue` 方法。该方法使用反射机制获取 `Person` 类的所有属性,并遍历这些属性,如果属性的值不为 `null`,则打印出属性名和属性值。在本例中,输出结果为:
```
name = 张三
age = 20
gender = 男
address = 北京市
```