2012-05-29 19 views
6

Necesito trabajar con cadenas largas que contengan saltos de línea en Java. Esos son para la generación de HTML, pero no es lo más importante aquí.Trabajar con cadenas largas (heredocs) en Java: ¿el enfoque legible?

Soy consciente de que Java está paralizado de una manera que no tiene heredocs. Pero hay otros mecanismos que podría usar:

1) Cadena concatenación (o StringBuilders), poco legible y copiable.

2) Almacenamiento de cadenas en .properties archivos, no muy legibles, pero con mayor capacidad de copiado.

3) Almacenando cada "heredoc" en un archivo separado .txt, bastante legible y copiable, pero que resulta en una horda de archivos txt.

motores 4) plantilla, como velocidad o Freemarker - se mueve el diseño de Java, requiere una gran cantidad de operaciones de correlación, sería bastante bueno, pero la sintaxis del bucle de velocidad y/habilidades si no son tan legible como por ejemplo los de Smarty

Cada uno tiene pros y contras, me gustaría elegir 3 pero la administración prefiere 1 por razones ideológicas puras. Me gustaría tener algún estándar para trabajar con heredocs en Java, posiblemente una biblioteca que haga las cosas más fáciles. Agradecería cualquier sugerencia (con buenos argumentos) sobre cómo trabajar con heredocs.

Gracias

+0

¿Hay alguna razón no se puede utilizar una de las herramientas de generación de plantillas/HTML existentes para Java? Hay muchos: Velocity, FreeMarker, etc. –

+2

Hilo relacionado gigante aquí: http://stackoverflow.com/questions/878573/java-multiline-string/5069681#5069681 – scorpiodawg

+0

Y otro hilo heredoc: http://stackoverflow.com/questions/2678483/simple-direct-heredoc-vía-de-construcción-a-html-cadena-en-java –

Respuesta

7

No me gusta ser "ese tipo", que sugiere que usted toma un enfoque completamente diferente a lo que preguntaste, pero ¿ha mirado maravilloso? Es un lenguaje JVM, se puede mezclar libremente con Java, y además de un montón de otras características de lenguaje realmente agradables, tiene heredocs.

Cuestiones relacionadas