【问题标题】:Any Future Plans for Multiline Java String多行 Java 字符串的任何未来计划
【发布时间】:2012-07-24 10:40:55
【问题描述】:

本着这个问题的精神: https://stackoverflow.com/questions/1886966/java-string-declaration-occupying-multiple-lines

在未来的 Java 版本中是否有任何计划允许在 Java 源代码中继续字符串?

String haveUeverSeenLorem =
  "Lorem ipsum dolor sit amet, \
  consectetur adipisicing elit, \
  sed do eiusmod tempor incididunt \
  ut labore et dolore magna aliqua.";

一种方式或另一种方式,例如就像上面的例子。

【问题讨论】:

标签: java string multiline


【解决方案1】:

曾为inclusion in Java 7提议但被拒绝了。

It was proposed again for Java 8 但没有进入最终版本。

Java 9's JEP 213: Milling Project Coin 也不包含有关多行字符串的任何内容。

【讨论】:

  • 这个决定背后的原因是什么?我就是不明白:他们在担心什么?
【解决方案2】:

这似乎不太可能。正如Java 7 - Multiline strings 的回答中指出的那样,他们没有为 Java 7 做好准备

【讨论】:

  • 不太可能——这意味着他们在未来的任何时候都不会认真考虑它?即使在小鹅离开之后?
  • 已提议并被拒绝。根据 assylias 的回答,它在 Java 8 中再次发生。据我所知,没有人说永远不会。据我所知,“我们永远不会认真考虑这一点”。简单地说,相对于其他事情,他们(我不知道他们是谁,因为我不了解 JCP)决定到目前为止不这样做。我只添加“不太可能”,因为在所有条件相同的情况下,我发现一个被反复拒绝的提案将来很可能会因为同样的原因继续被拒绝。不过,这只是我的看法。
【解决方案3】:

2018 年 1 月更新:

看看JEP 326: Raw String Literals

计划的语法将是:

String haveUeverSeenLorem = `Lorem ipsum dolor sit amet, 
consectetur adipisicing elit, 
sed do eiusmod tempor incididunt 
ut labore et dolore magna aliqua.`;

也许它会被集成到 Java 的下一个版本中(2018 年 9 月的 Java 11 会很棒)。

【讨论】:

    【解决方案4】:

    2020 年 4 月更新

    JEP 326: Raw String Literals 被撤回并被替换为

    JEP 368: Text Blocks (Second Preview)

    此功能在 Java 14 中作为预览语言功能发布。

    支持的语法是:

    String json = """
                  {
                     "id": 10,
                     "name": "Joe",
                     "birthday": "1970-01-01"
                  }
                  """;
    

    """(胖定界符)用作多行字符串的定界符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      • 1970-01-01
      • 2021-04-19
      • 2020-10-07
      • 1970-01-01
      相关资源
      最近更新 更多