Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Error que no debe ocurrir al declarar String.format

Buenas Tardes.
Soy nuevo en java, y tengo una pregunta acerca de String.formar.

Cuando empece a trabajar con java, yo declaraba
details = String.format(" %d ",event.getClickCount());
sin tener problemas, y al compilarlo, los datos del número de clicks me salia bien en la ventana, al instalas el jdk 8 tuve un problema. Declararé de nuevo el
details = String.format(" %d ",event.getClickCount());
saliendo el error:
The method format(String, Object[]) in the type String is not applicable for the arguments (String, int).

Me gustaría saber si se tiene alguna otra forma de declararlo o si es necesario modificar el jdk para que tome el details = String.format(" %d ",event.getClickCount()) o si debo declararlo de otra forma.

Muchas gracias.

abril 18, 2014 | Registered Commentereaparra

Buenas.
no he usado java 8, pero por lo que dices solo han re definido el método antes era
format(String format, Object ... arg); la diferencia radica que aquí mandas un array de Object de forma implícita, formada por cuantos parámetros envíes luego del parametro format.
pero la nueva forma que tu indicas debes enviar este array de forma explicita, una manera fácil de hacerlo seria:

Object argumento[]={event.getClickCount()};
details = String.format(" %d ",argumento);

espero que sea ayuda.

saludos.

abril 18, 2014 | Registered Commenterjhosep

Este es el Javadoc de JavaSE 1.8

http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.lang.String-java.lang.Object...-

Y estas líneas compilan perfectamente en JavaSE 1.8

String format = String.format("%d", new Object[]{1, 2, 3});
String format = String.format("%d", 1);

Este es el Javadoc de JavaSE 1.7

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#format(java.lang.String, java.lang.Object...)

Como puedes ver no hay diferencias en la signatura.

abril 18, 2014 | Registered Commenterchoces