体验JDK21新特性:字符串模版
介绍
字符串模版是JDK21的新特性,详细内容可参考JEP430 https://openjdk.org/jeps/430
字符串模版类似Python的fstring
a=1
b=2
s=f'{a} + {b} = {a+b}'
相比于用+
号或者StringBuilder
拼接字符串,字符串模板更为简洁
配置JDK21环境
JDK21还没有正式发布,可以在openjdk的官网获取
https://jdk.java.net/21/
下载完毕后修改JAVA_HOME
,PATH
,将JDK21添加到环境变量中
体验字符串模版
创建Main.java
文件,添加如下内容
import static java.lang.StringTemplate.STR;
public class Main {
public static void main(String[] args) {
String name = "JDK21";
String message = STR."Hello \{name}!";
System.out.println(message);
}
}
使用如下命令运行
javac --enable-preview --source 21 -Xlint:preview Main.java
java --enable-preview Main
运行结果如下
Main.java:6: 警告: [preview] 字符串模板 是预览功能,可能会在未来发行版中删除。
String message = STR."Hello \{name}!";
^
Main.java:6: 警告: [preview] 字符串模板 是预览功能,可能会在未来发行版中删除。
String message = STR."Hello \{name}!";
^
Main.java:1: 警告: [preview] StringTemplate 是预览 API,可能会在未来发行版中删除。
import static java.lang.StringTemplate.STR;
^
3 个警告
Hello JDK21!
查看编译后class文件,可以发现Java中的字符串模版本质上是用+
拼接字符串的语法糖
public class Main {
public Main() {
}
public static void main(String[] var0) {
String var1 = "JDK21";
String var2 = "Hello " + var1 + "!";
System.out.println(var2);
}
}
在IDEA里运行
首先在项目结构里修改Language level为X
在运行配置中添加虚拟机参数--enable-preview
在设置中的Java Compile里的编译参数中添加--enable-preview
完成设置后便可正常在IDEA中体验新特性