JavaのソースにHTMLとか埋めこむ時、here document したい!
…そう。みんな困っているのだが残念ながら良い解決法はない。JavaDoc と annotation の合わせ技でなんとかしている例もあるのだが、うっかりするとEclipseが JavaDoc 部分を勝手に整形しちゃったりして内容がいつのまにか変化してしまっている、なんて事故も発生する。
just idea なのだが、下記のようなコードを書いてこれからしばらく使ってみることにする。
Sample.java
public static String hereDoc(Function<String, String> trimmer, String eol, String... strs) {
StringBuilder sb = new StringBuilder();
for (String s : strs) {
sb.append(trimmer == null ? s : trimmer.apply(s));
sb.append(eol == null ? "" : eol);
}
return sb.toString();
}
public static void sample() {
System.out.print("<?php\n\nclass MyClass {\npublic function test() {\n}\n}\n?>");
// ↑このようなコードを
// ↓このように書いてみる
System.out.print(
hereDoc(s->s.trim(), System.lineSeparator(),
" <?php ",
" ",
" class MyClass { ",
" public function test() { ",
" } ",
" } "
)
);
}
タブ文字使いたいときはどうするのが良いだろうか…