Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

126
Visualizações
¿Java MessageFormat tiene un separador de línea de plataforma como String.format?

Esta es una posibilidad remota, pero espero reemplazar los literales de nueva línea en el código MessageFormat como

 LOG.log(INFO, "message={0}\nAnd extra blank line\n", new String[]{message});

con un patrón independiente de la plataforma. El patrón String.format() %n no funciona para Logger o MessageFormat. Me gustaría evitar pasar System.lineseperator como un argumento como este:

 LOG.log(INFO, "message={0}{1}And a blank line{1}",new String[]{message, System.lineSeparator()});

No veo ninguna mención de nueva línea o separador de línea en los documentos para MessageFormat, pero tal vez se mencione en otro lugar. https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/MessageFormat.html

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

¿Java MessageFormat tiene un separador de línea de plataforma como String.format?

Según mi lectura del código, la respuesta es No.

Y no hay RFE existentes o informes de errores sobre esto que pueda ver en los rastreadores de errores de Java o OpenJDK 1 .

Sin embargo, como señala Joop, dado que en realidad está preguntando esto en el contexto del registro, hay algunas otras formas de resolver esto (aunque no todas serán prácticas):

  • Ignora el problema. Estos mensajes van a los archivos de registro. Tal vez realmente no importe que los separadores de línea en los mensajes de los archivos de registro no siempre coincidan con la plataforma.
  • Cree una subclase personalizada de MessageFormat que reconozca una sintaxis que signifique "separador de línea específico de la plataforma".
  • Manejar los separadores de línea traduciéndolos en un agregador o formateador de mensajes de registro personalizado; p.ej
    • Traduce todos los separadores de línea del "tipo incorrecto".
    • Reconocer y traducir una secuencia mágica de caracteres...
  • Cambie a un marco de registro diferente que use java.util.Formatter para la construcción de mensajes. AFAIK, la mayoría de los marcos modernos lo hacen.
  • Presentar un RFE.

1 - Podría leer eso como "evidencia" de cuán poco uso hay de MessageFormat en el mundo real/aplicaciones modernas, o cuán pocas personas lo usan en contextos donde los separadores de línea son importantes.


@Bohemian comentó:

¿Por qué quiere evitar "pasar System.lineseparator como argumento"?

Hubiera pensado que eso era evidente. es torpe

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda