You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级JDK 23后找不到StringTemplate类,IDE提示用字符串模板遇问题

JDK 23 中 StringTemplate 类缺失问题解析

问题根源

JDK 23 里的字符串模板特性仍处于预览状态,默认并未启用。这意味着java.lang.StringTemplate类及相关API不会在常规编译、运行环境中暴露,必须显式开启预览特性才能访问。

IDE弹出的String can be replaced with template警告,是基于语法层面的优化提示,但如果你的项目没配置启用预览特性,自然会出现找不到类的情况——这不是JDK本身的问题,很多开发者都碰到过。

解决办法

1. 启用预览特性

不管用命令行还是IDE,都得添加启用预览的参数:

  • 命令行编译:javac --enable-preview --release 23 YourClass.java
  • 命令行运行:java --enable-preview YourClass
  • IDE配置(以IntelliJ IDEA为例):
    • 打开项目结构(File > Project Structure),在"Modules"的"Sources"标签下,把"Language level"设为23 (Preview) - String templates
    • 进入"Settings > Build, Execution, Deployment > Compiler > Java Compiler",在"Additional command line parameters"里添加--enable-preview

2. 正确使用字符串模板

启用预览后,替换原拼接代码的两种方式:

  • 直接用模板表达式输出:
    System.out.print(STR."The capital city of \{index} is ");
    
  • 先定义模板再使用:
    StringTemplate template = STR."The capital city of \{index} is ";
    System.out.print(template);
    
    这里的STR是StringTemplate类自带的静态模板处理器,无需额外导入。

3. 关闭警告(可选)

如果暂时不想用预览特性,也可以在IDE里把这个警告关掉:找到String can be replaced with template对应的警告项,将级别调整为"无"或"忽略"即可。

内容的提问来源于stack exchange,提问作者Andruid929

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 04:27:08