Entity实体类通过反射机制设置属性默认值

有一个同事反馈,说是实体类如果返回null的时候,能不能返回中划线(-),我们一般做法是不是每个属性值都要先判断一下,但是有的实体类(Entity)属性值特别多,这样每个都设置,是不是很麻烦的!

后来通过反射机制可以对属性很好的处理,设置一个初始值

1、首先定义一个实体类

public class Car {

private String name;

private String junitString;

private Integer age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getJunitString() {

return junitString;

}

public void setJunitString(String junitString) {

this.junitString = junitString;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {this.age = age;}}

2、通过反射机制处理

public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException{

Car car = new Car();

car.setName("张三");

Class<Car> cls = Car.class;

Field[] filFields = cls.getDeclaredFields();

for (Field field : filFields) {

// 获取属性值名称

System.out.println("field:" + field.getName());

// 私有的成员是受保护的,不能直接访问

field.setAccessible(true);

// 获取属性的类型

String type = field.getGenericType().toString();

// 获取属性值

Object value = field.get(car);

if(value == null && type.equals("class java.lang.String")) {

field.set(car, "-");

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容