如何将变量放入Java文本块?
喜欢
"""
{
...
"someKey": "someValue",
"date": "${LocalDate.now()}",
...
}
"""
答案 0 :(得分:7)
您可以在文本块中使用%s
作为占位符
String str = """
{
...
"someKey": "someValue",
"date": %s,
...
}
"""
并使用format
替换String.format(str,LocalDate.now());
更清洁的替代方法是使用String :: replace或String :: format,如下所示:
String code = """
public void print($type o) {
System.out.println(Objects.toString(o));
}
""".replace("$type", type);
String code = String.format("""
public void print(%s o) {
System.out.println(Objects.toString(o));
}
""", type);
另一种替代方法是引入新的实例方法String :: formatted,该方法可以按以下方式使用:
String source = """
public void print(%s object) {
System.out.println(Objects.toString(object));
}
""".formatted(type);
注意:,但不推荐使用java-13文档String.formatted
的文档,建议使用String.format(this, args).
此方法与文本块(一种预览语言功能)相关联。将来的发行版中可能会更改或删除文本块和/或此方法。