前言
Jdk21发布时,新增了预览属性,字符串模版(JEP 430),它是字符串插值语言的更改,为开发者提供了一种更加高效和简洁的字符串处理方式。
字符串模版使用
预览属性开启
由于字符串在Jdk21是一项预览属性,所以想要使用它,就必须开启预览模式,如果是maven
的话,可以用以下配置
maven开启预览属性
xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<compilerArg>--enable-preview</compilerArg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
或者在idea启动时,加入参数的预览
idea开启预览属性
(1)首先在jvm optional
加入预览参数--enable-preview
(2)在Java Compiler
加入预览参数
这样就可以使用
字符串模版
预览属性
字符串模版使用
arduino
import static java.lang.StringTemplate.STR;
public class Test {
public static void main(String[] args) {
int x = 20, y = 20;
String s = STR."\{x} + \{y} = \{x + y}";
System.out.println(s);
}
}
输出结果为
或者,定义一个实体类
typescript
public class User {
private Long id;
private String name;
public User(Long id, String name) {
this.id = id;
this.name = name;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + ''' +
'}';
}
}
然后使用字符串模版
typescript
import static java.lang.StringTemplate.STR;
public class Test {
public static void main(String[] args) {
User user = new User(1L, "aa");
String s = STR."\{user.getId()} , \{user.getName()} ";
System.out.println(s);
}
}
输出结果为
总结
Jdk21把字符串模版作为一个预览属性,并且在Jdk22再次预览,但是Jdk23发布的时候,删除了该预览属性,所以在jdk23该属性是没有的