final和lamda表达式,Optional

final关键字的作用

为什么使用 final?

  1. 安全性:防止意外修改(如常量、不可变类)。
  2. 设计意图:明确声明“不可变”,提升代码可读性。
  3. 性能优化:JVM 可能对 final 变量进行优化(如内联)。

final 关键字的作用总结

修饰目标 作用 示例
变量 值(基本类型)或引用(对象类型)不可变(重新赋值) final int x = 10;
final List<String> list = new ArrayList<>();
方法 禁止子类重写该方法 final void method() { ... }
禁止其他类继承该类 final class A { ... }

jdk8 lambda表达式 箭头函数

details.forEach(detail -> detail.setSonDetails(getDeptImportantTaskSonDetails(detail.getid())));

Lambda 表达式:简化了函数式接口(如 Consumer)的实现,forEach:替代传统 for 循环,更简洁。

details.forEach(new Consumer<Detail>() {
    @Override
    public void accept(Detail detail) {
        detail.setSonDetails(getDeptImportantTaskSonDetails(detail.getid()));
    }
});

optional

// ❌ 冗余:List 本身已能表达“空”的状态
Optional<List<PersonInfo>> optionalList = Optional.ofNullable(getPersonList());

// ✅ 更清晰的写法
List<PersonInfo> list = getPersonList(); // 直接使用空集合
if (!list.isEmpty()) { ... }

包装集合中的元素(推荐)

// ✅ 明确表示“可能没有第一个元素”
Optional<PersonInfo> firstPerson = getPersonList().stream().findFirst();

// 链式安全操作
firstPerson.ifPresent(person -> System.out.println(person.getName()));

何时该用 Optional 处理集合?

适用场景

  • 查询单条数据(如 findFirst/findAny/max)。
  • 需要明确区分“无结果”和“结果为空集合”时(少见,但可能存在)。

不适用场景

  • 单纯返回集合(如 List/Set),直接用空集合表示“无数据”。

通过这种方式,可以避免滥用 Optional 同时保持代码的健壮性。

全部评论

相关推荐

07-18 14:34
门头沟学院 Java
感觉招聘要求好高,这都是招什么人才
电气电子小朋友:你都说了这是大疆,无人机顶级企业,薪资30k-50k,要求高是正常的
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务