大家好,我是阿凯。近期做数据对接需要给部分实体类所有字段默认值。
直接在实体类添加构造代码块进行赋值:
package com.example.demo;
import java.lang.reflect.Field;
public class Boy {
private String id;
private String name;
private Integer sex;
private Integer age;
//构造代码块:每次调用构造方法前执行,都会先执行构造代码块。
{
Class cls = this.getClass();
Field[] fields = cls.getDeclaredFields();
try {
for (int i = 0; i < fields.length; i++) {
Field f = fields[i];
f.setAccessible(true);
//如果是String类型,默认值为#
if(f.getType()==String.class){
f.set(this,"#");
}
//如果是Integer类型,默认值为0
if(f.getType()==Integer.class){
f.set(this,0);
}
System.out.println("字段名:" + f.getName() + "\t值:" + f.get(this));
}
} catch (Exception e) {
e.printStackTrace();
}
//特殊字段
sex=18;
name="aaa";
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}