原创 

使用映射给Java实体类字段赋默认值

分类:java    856人阅读    akai  2022-05-16 20:40

大家好,我是阿凯。近期做数据对接需要给部分实体类所有字段默认值。

直接在实体类添加构造代码块进行赋值:

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;
    }
}
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

 工具推荐 更多»