你知道龙目岛的其他选择吗?使用Lombok我们可以忘记使用getter和setter以及toString搞乱类,我想在我的项目中使用它但是我想知道是否有更好的选择?
我使用的是Java 1.7 ..并且无法更改为1.8.
maa*_*nus 25
我担心,除非你想切换到像Scala这样的东西,或者对像AutoValue提供的一小部分功能感到满意,否则别无选择.
虽然AutoValue它可能是纯Java最好的,但它提供了
但它没错
虽然我非常同意不变性是一种美德,但它有时并不适用.无论如何,龙目岛努力支持不变性,它甚至与Guava的不可变集合集成,你可以写
@Builder @Getter public final class Sentence {
private final boolean truthValue;
@Singular private final ImmutableList<String> words;
}
Run Code Online (Sandbox Code Playgroud)
并使用它
Sentence s = Sentence.builder().truthValue(true)
.word("Lombok").word("is").word("cool").build();
assertEquals(3, s.getWords().size());
Run Code Online (Sandbox Code Playgroud)
注意:我不是作者,所以我可以说它很酷.
对于immutables,@Wither并toBuilder很酷.前者允许您创建一个不同于单个字段的副本,后者为您提供一个以当前值开头并适合更改多个字段的构建器.以下两行是等效的:
o.withA(1).withB(2)
o.toBuilder().a(1).b(2).build()
Run Code Online (Sandbox Code Playgroud)
龙目岛都AutoValue使用了一些魔法.后者的神奇之处在于标准的注释处理,所以它非常强大.它有一些缺点,如第27页所列.我添加了一些事实,我生成了一些我没有订购的AutoValue_foo.
龙目岛使用一些黑魔法,因此更脆弱,但它提供更多,并且工作得很好.
| 归档时间: |
|
| 查看次数: |
19030 次 |
| 最近记录: |