lxk11153
V2EX  ›  Java

Java 里面有没有类似 es6 的模板字符串语法?

  •  1
     
  •   lxk11153 · Jun 17, 2020 · 6273 views
    This topic created in 2332 days ago, the information mentioned may be changed or developed.
    `In JavaScript this is
     legal. "233"`
    
    Supplement 1  ·  Jun 17, 2020
    ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
    Object obj = engine.eval("""
                             function hello() {
                                 print('"Hello, world"');
                             }
                             
                             hello();
                             """);
    
    17 replies  •  2020-06-17 14:41:06 +08:00
    GM
    GM
    Jun 17, 2020
    1
    没有。
    Java 14 支持有多行字符串,但是根据现在的尿性,11 普及还远,大概率五年后也享受不到这种语法糖。
    xeathen
    xeathen
    Jun 17, 2020
    2
    jdk13 支持文本块了。
    xeathen
    xeathen
    Jun 17, 2020
    4
    @GM #1 我公司已经在用 JDK14 了哈哈,小公司就是奔放
    lxk11153
    lxk11153
    OP
    Jun 17, 2020
    5
    @xeathen #2
    @ChanKc #3 文本块里的双引号需要转义吗?
    auin
    auin
    Jun 17, 2020
    6
    看示例:

    ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
    Object obj = engine.eval("""
    function hello() {
    print('"Hello, world"');
    }

    hello();
    """);
    ChanKc
    ChanKc
    Jun 17, 2020
    7
    @lxk11153 https://openjdk.java.net/jeps/378
    完整阅读 escape 相关的部分就好
    xiangyuecn
    xiangyuecn
    Jun 17, 2020
    8
    自己写一个 java 文件的预处理吧,想写什么自定义语法就写什么语法

    比如我就会写:
    ```java
    String text=""/*<<<EOF

    abc

    /*doc*_/
    efg

    EOF*/;
    ```

    扔给 javac 编译前,先调用一遍自己的预编译工具,编译自己定义的语法为标准 java 语法
    reeco
    reeco
    Jun 17, 2020
    9
    没有,直接换 kotlin 吧
    HENQIGUAI
    HENQIGUAI
    Jun 17, 2020
    10
    Rwing
    Rwing
    Jun 17, 2020
    11
    C# 欢迎各位

    string text = $"Hello, {name}! Today is {date.DayOfWeek}, it's {date:HH:mm} now.";

    string query = @"SELECT foo, bar
    FROM table
    WHERE id = 42";
    lxk11153
    lxk11153
    OP
    Jun 17, 2020
    12
    @Rwing #10
    @HENQIGUAI #11
    @reeco #9 这就是编程语言鄙视链吗? i 了 i 了
    Rwing
    Rwing
    Jun 17, 2020
    13
    @lxk11153 不敢不敢,在中国谁敢鄙视 java 啊,javaer 说句话,中国 it 行业都抖三抖
    zhaorunze
    zhaorunze
    Jun 17, 2020
    14
    语言只是工具,hellow word 一百种简写方法,也没啥用
    zhuweiyou
    zhuweiyou
    Jun 17, 2020
    15
    不支持。
    写个模板文件来 render 吧
    GM
    GM
    Jun 17, 2020
    16
    @xeathen 咦?我记得是 14 啊?记错了?
    Mistwave
    Mistwave
    Jun 17, 2020 via iPhone
    17
    Scala 欢迎你
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1962 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 16:30 · PVG 00:30 · LAX 08:30 · JFK 11:30
    ♥ Do have faith in what you're doing.