Project Lombok
通过注解来减少 Java 中的重复性代码,比如 getter 和 setter、非空检查、生成 Builder 等。
val - 终级解决方案!简化 final 局部变量定义。
@NonNull - 或者:了解我是怎样停止担心并爱上 NullPointerException 的。
@Cleanup - 怎么资源管理:方便而安全地调用 close() 方法。
@Getter / @Setter - 不再需要写像 public int getFoo() {return foo;} 这样的代码。
@ToString - 不用启动调试器就能观察字段值:让 Lombok 为你生成 toString!
@EqualsAndHashCode - 让等值比较变得容易:在项目中由字段实现 hashCode 和 equals。
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor - 定制构造器:生成无参构造函数,对每个 final/非空 字段产生构造器,对每个字段产生构造器。
@Data - 它合并所有注解:相当于对所有字段应用 @[email protected]@Getter,并对所有非 final 字段应用 @Setter,以及应用 @RequiredArgsConstructor!
@Value - 简单创意不可变类。
@Builder - … 一切都很简单:简单直接地创建对象的 API!
@SneakyThrows - 大胆的抛出以前不能轻易抛出的异常!
@Synchronized - 正确的同步:不要暴露你的锁。
@Getter(lazy=true) 懒加载是种美德!
@Log - 舰长日志,星历 24435.7: “这是什么行?”
GitHub,网站
边城翻译于 1天前0人顶 翻译得不错哦!Simple Logging Facade for Java
Simple Logging Facade for Java(SLF4J)是对各种日志框架(比如 java.util.logging、logback、log4j 等)的简单门面或者抽象,它让用户可以在开发时使用喜欢的日志框架。
简单地说,库和其它嵌入式组件考虑使用 SLF4J 来记录日志,因为它们不能把自己选用的日志框架强加给用户。另一方面,独立的应用程序就不必在意是否使用 SLF4J。独立的应用程序可以直接使用自己选用的日志框架。在使用 logback 的时候会有一个争议,因为它是使用 SLF4J 来提供日志 API 的。
网站,GitHub,FAQ
JUnitParams
参数化测试
@Test@Parameters({"17, false", "22, true" })public void personIsAdult(int age, boolean valid) throws Exception { assertThat(new Person(age).isAdult(), is(valid));}
与标准 JUnit Parametrised 运行器的主要区别:
更明确 - 参数是测试方法的参数,而不是类中定义的字段
更少代码 - 不需要通过构造器来设置参数
可以在一个类里混合参数化或非参数化的方法
参数可以由 CSV 文本提供,也可以由专门的参数提供类提供
参数提供类可以有任意多个参数提供方法,所以你可以对不同的情况分组
可以由测试方法提供参数(而不是其它类或静态方法)
可以在 IDE 中看到实际的参数值(JUnit 的 Parametrised 中只有连续编号的参数)
网站,GitHub,快速开始
边城翻译于 1天前0人顶 翻译得不错哦!Mockito
Java 中不错的 mock 框架
//You can mock concrete classes, not just interfaces