代码对比
✕ Java 7
// Separate utility class needed
public class ValidatorUtils {
public static boolean isBlank(
String s) {
return s == null ||
s.trim().isEmpty();
}
}
// Usage
if (ValidatorUtils.isBlank(input)) { ... }
✓ Java 8+
public interface Validator {
boolean validate(String s);
static boolean isBlank(String s) {
return s == null ||
s.trim().isEmpty();
}
}
// Usage
if (Validator.isBlank(input)) { ... }
发现此代码有问题? 告诉我们。
为什么现代方式更好
更好的组织
将相关工具方法与接口放在一起,而非单独的类中。
可发现性
工厂和辅助方法在您期望的地方找到。
API 内聚性
无需单独的 *Utils 或 *Helper 类。
旧方式
工具类
现代方式
接口静态方法
自 JDK
8
难度
入门
JDK 支持
接口中的静态方法
可用
自 JDK 8 起可用(2014 年 3 月)
工作原理
Java 8 之前,与接口相关的工具方法必须放在配套的工具类中。接口上的静态方法将相关 API 聚合在一起。
相关文档