JDK25中的StableValue
作者:互联网
2025-10-19
前言
随着JDK25发布之后,首次引入了StableValue语法糖,不过目前是预览属性,用于可延迟初始化的不可变值,这些对象在首次赋值之后即成为不可变
StableValue使用
orElseSet使用
public class StableExample {
static void main(String[] args) {
var greeting = StableValue.<String>of();
String message = greeting.orElseSet(() -> "Hello World");
System.out.println(message);
}
}
输出结果为
StableValue.list
public class StableExample {
static void main(String[] args) {
List fiveTimesTable = StableValue.list(11, index -> index * 5);
System.out.println(fiveTimesTable);
System.out.println(fiveTimesTable.get(0));
}
}
输出结果为
当然该List是不可变的,往List里面增加或移除元素,就会报错
public class StableExample {
static void main(String[] args) {
List fiveTimesTable = StableValue.list(11, index -> index * 5);
fiveTimesTable.add(1);
System.out.println(fiveTimesTable);
}
}
输出结果为
StableValue.supplier()使用
import java.util.function.Supplier;
public class StableValueDemo {
static void main() {
Supplier supplier = StableValue.supplier(() -> "hello world");
System.out.println(supplier.get());
}
}
输出结果为
总结
目前StableValues在JDK25是预览状态,但标志着 Java 对启动优化与懒加载模式的再进化
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
【从0到1构建一个ClaudeAgent】并发-后台任务
04/17
MyBatis、MyBatis-Plus、JPA、MyBatisGX 写法比较:同一个需求,四种解法
04/17
java2AI系列:SpringAI 通过 Function Calling 接入外部系统
04/17
Java 通用树形结构构建与解析工具类解析
04/17
深度剖析:Java 并发三大量难题 —— 死锁、活锁、饥饿全解
04/17
别再重复造轮子了!SpringBoot对接第三方系统模板,拿来即用
04/17
Spring AI 核心原理解析:基于 1.1.4 版本拆解底层架构
04/16
华为 IODT 设备接入
04/16
自定义跨字段校验必填注解
04/16
别再System.out了!这份SpringBoot日志优雅指南,让你告别日志混乱
04/16
AI精选
