栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

浅谈java 中set对象属性的优雅写法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

浅谈java 中set对象属性的优雅写法

通常我们创建一个对象,比如说Student student = new Student(),里面有一大堆乱起八糟属性,我们后面new对象进行操作时,可能涉及到set属性值,可能导致这种情况:

Student student = new Student();

student.setXXX(XXX);

student.setXXX(XXX);

student.setXXX(XXX);

student.setXXX(XXX);

student.setXXX(XXX);

student.setXXX(XXX);

student.setXXX(XXX);

student.setXXX(XXX);

如果有很多属性,比如十几个时候,那也就是说光创建一个对象就花了十几行,代码规范里面不允许一个方法超过50行的,而且阅读代码时也很难看,不简洁

那么我们还如何写呢?

个人推荐with链式set

StudentModel model = StudentModel.StudentModelBuilder
        .generateStudentModel()
        .withId(XXX)
        .withAppCode(XXXX)
        .withCluster(XXXX)
        .withPod(XXXX)
        .withSchool(XXX)
        .withClusterId(XXX)
        .build();

这些无需换行写,看起来很简洁,而且多个with可以写在一行

如果生成with方法呢?自己写也可个构造者模式,也可以使用idea的插件Builder Generator

要set的类内部定义静态内部类:

public static final class SchoolModelBuilder {
    private SchoolModel schooModel;

    private SchoolModelBuilder() {
        schoolModel = new SchoolModel();
    }

    public static SchoolModelBuilder generateSchoolModel() {
        return new SchoolModelBuilder();
    }

    public SchoolModelBuilder withId(Long id) {
        schoolModel.setId(id);
        return this;
    }

           // TODO with其它属性

public SchoolModel build() {
    return schoolModel;
}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/932769.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号