2012-05-29 10 views
6

Ich muss mit langen Strings mit Zeilenumbrüchen in Java arbeiten. Diese sind für HTML-Generierung, aber es ist nicht das wichtigste hier.Arbeiten mit langen Strings (heredocs) in Java - der lesbare Ansatz?

Ich bin mir bewusst, Java ist Krüppel in einer Weise, die es nicht heredocs hat. Aber es gibt andere Mechanismen, die ich verwenden könnte:

1) String Verkettung (oder StringBuilders), nicht sehr lesbar und kopierbar.

2) Speichern von Zeichenfolgen in .properties Dateien, entweder nicht sehr lesbar, aber mit höherer Copypasteability.

3) Speichern jedes "heredoc" in separaten .txt Datei, ziemlich lesbar und Copypasteable, aber in einer Horde von TXT-Dateien.

4) Template-Motoren, wie Geschwindigkeit oder Freemarker - bewegt Design von Java, erfordert eine Menge Karte Operationen, wäre es ganz gut, aber die Geschwindigkeit Syntax und Schleife sein/wenn Fähigkeiten sind nicht so lesbar wie zum Beispiel die von Smarty

Jeder haben Profis und Kontras, ich möchte 3 wählen, aber die Verwaltung bevorzugt 1 aus rein ideologischen Gründen. Ich hätte gerne einen Standard für die Arbeit mit Heredocs in Java, möglicherweise eine Bibliothek, die die Dinge einfacher macht. Ich wäre dankbar für Vorschläge (mit guten Argumenten), wie man mit Heredocs arbeitet.

Thanx

+0

Gibt es einen Grund, warum Sie nicht eine der vorhandenen Templating/HTML-Generation-Tool für Java verwenden können? Es gibt viele: Velocity, FreeMarker, etc. –

+2

Giant verwandten Thread hier: http://StackOverflow.com/Questions/878573/Java-Multiline-String/5069681#5069681 – scorpiodawg

+0

Und ein weiterer Heredoc-Thread: http://StackOverflow.com/questions/2678483/simple-direct-heredoc-weg-von-konstruieren-a-html-string-in-java –

Antwort

7

Ich hasse „dieser Typ“ zu sein, der, dass Sie einen völlig anderen Ansatz schlägt vor, als das, was über Sie gefragt, aber haben Sie sich Groovy? Es ist JVM Sprache, kann frei mit Java gemischt werden, und zusätzlich zu einer Reihe von anderen wirklich schönen Sprachfunktionen hat es Heredocs.

Verwandte Themen