使用Java中的长字符串(heredocs) - 可读的方法?

Fol*_*ord 8 java string heredoc

我需要处理包含Java中的换行符的长字符串.这些是用于HTML生成的,但它并不是最重要的.

我知道Java在没有heredocs的方式上是残废的.但是我还可以使用其他机制:

1)字符串连接(或StringBuilders),不是非常易读和可复制粘贴.

2)在.properties文件中存储字符串,要么不是非常易读,要么具有更高的复制性.

3)将每个"heredoc"存储在单独的.txt文件中,非常易读且可以复制,但会产生大量的txt文件.

4)模板引擎,如VelocityFreemarker - 将设计移出Java,需要大量的地图操作,这将是相当不错的,但Velocity语法和循环/如果能力不像Smarty那样可读

每个人都有利弊,我想选择3,但由于纯粹的意识形态原因,管理层更喜欢1.我想在Java中使用heredocs有一些标准,可能是库让事情变得更容易.我很感激任何建议(有很好的论据)如何使用heredocs.

感谢名单

Gre*_*eek 9

我讨厌做那个"那个人",他建议你采取一种完全不同于你所问的方法,但是你看过Groovy吗?它是JVM语言,可以与Java自由混合,除了一堆其他非常好的语言功能外,还有heredocs.

  • 2021 年更新。JDK 15 有heredocs。它们被称为“文本块”。请参阅 https://docs.oracle.com/en/java/javase/15/text-blocks/index.html (2认同)

Gel*_*Luo 2

尝试 Rythm 模板引擎,它是一个高性能 Java 模板引擎,具有类似 Razor 的干净语法。

链接:

更新

Rythm 现在有一个网站:http://rythmengine.org和一个小提琴网站:http://fiddle.rythmengine.org