FreeBuilder 背景使用JavaBean convention 介绍
FreeBuilder
当设计类的构造函数或静态工厂具有多个参数时,Builder 模式是一个不错的选择。—— Effective Java ,第二版,第39页
背景
在 Java 中实现 Builder 模式容易出错和重复。即使是一个简单的四字段类,最基本的构建器 API 需要 39 行代码,如果你不使用像
Autovalue 这样的实用程序来生成值样板,则需要 72 行代码。
使用
import org.inferred.freebuilder.FreeBuilder; @FreeBuilder public interface Person { /** Returns the person's full (English) name. */ String name(); /** Returns the person's age in years, rounded down. */ int age(); /** Builder of {@link Person} instances. */ class Builder extends Person_Builder { } }
JavaBean convention
如果值类型遵循 JavaBean 命名约定,只需在访问器方法前面加上’get’(或者,布尔访问器是’is’)。 FreeBuilder 会跟随,并在
setter 方法上添加“set”前缀,以及从 toString 输出中删除前缀。
@FreeBuilder public interface Person { /** Returns the person's full (English) name. */ String getName(); /** Returns the person's age in years, rounded down. */ int getAge(); /** Builder of {@link Person} instances. */ class Builder extends Person_Builder { } } Person person = new Person.Builder() .setName("Phil") .setAge(31) .build(); System.out.println(person); // Person{name=Phil, age=31}
FreeBuilder 背景使用JavaBean convention 官网
http://freebuilder.inferred.org
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。