2011-01-17 7 views
8

El compilador tiene acceso a la cadena de formato Y a los tipos y parámetros necesarios. Así que supongo que habría alguna forma de indicar parámetros faltantes para las variables ... incluso si solo fuera por un subconjunto de casos. ¿Hay alguna forma de eclipse u otra ide que indique que los varargs pasados ​​podrían causar un problema en el tiempo de ejecución?Cómo obtener string.format para quejarse en tiempo de compilación

+0

Idea agradable para una mejora eclipse, por cierto. Podría verificar, al menos, cadenas de formato estáticas y varargs de tamaño fijo. –

+0

Echa un vistazo a mi respuesta aquí - http://stackoverflow.com/questions/24769455/java-string-format-compile-time-error-checking-and-safer-alternative - todavía es un ligero trabajo en progreso –

Respuesta

1

El compilador de Java no tiene ningún conocimiento semántico incorporado de los parámetros de StringFormat, por lo que no puede verificarlos en tiempo de compilación. Por lo que sabe, StringFormat es simplemente otra clase y String.format es solo otro método, y la cadena de formato dada es simplemente otra cadena como cualquier otra.

Pero sí, siento tu dolor al haber tenido estos mismos problemas en los últimos días. Lo que deberían haber hecho es "menos cuidadoso" sobre la cantidad de parámetros, y dejar los marcadores% s finales sin reemplazar.

+0

quizás el el compilador no puede decir ... cierto, pero tal vez hay algunas herramientas de análisis estático por ahí que hacen eso? – mafalda

Cuestiones relacionadas