适用版本:sure-core 1.12.0+(批26/27 新增
com.sure.tool.lang包) 示例源码:sure-examples/src/main/java/com/sure/tool/example/LangDemo.java
map/onSuccess 自动跳过,无需 if 分支Results.allOf/anyOf/sequence 一次执行多个操作并聚合错误import com.sure.tool.lang.Result;
import com.sure.tool.lang.Results;
// 成功/失败
Result<Integer> ok = Result.ok(42);
Result<Integer> bad = Result.fail("服务不可用");
// 链式短路:失败后不再执行
Result<String> mapped = bad.map(v -> "值=" + v)
.onSuccess(v -> System.out.println("不会执行"));
// 兜底 + 取值
int v = bad.recover(err -> -1).get();
// 批量执行:任一失败聚合
Result<java.util.List<Integer>> all = Results.allOf(
Result.ok(1), Result.fail("失败"), Result.ok(3));
String err = all.isFailure() ? all.getErrorMessage() : "";
import com.sure.tool.lang.Option;
import com.sure.tool.lang.NullUtil; // 注意:NullUtil 在 com.sure.tool.util
Option<String> opt = NullUtil.applyIfNotNull(name, s -> s.trim()); // null 安全
if (opt.isEmpty()) { /* 兜底逻辑 */ }
| 维度 | try/catch | Result |
|---|---|---|
| 错误传播 | 隐式(调用栈) | 显式(返回值) |
| 性能 | 异常栈填充昂贵 | 与 Optional 同量级 |
| 组合 | 需手写分支 | map/flatMap/onSuccess 链式短路 |
| 语义 | 异常即控制流 | 错误是数据,可聚合可恢复 |