El formato de método (String, Object ) en el tipo String no es aplicable para los argumentos (…)

Aquí está mi código:

int hoursFormat = 1, minsFormat = 2, secsFormat = 3; String timeFormat = String.format("%02d:%02d:%02d",hoursFormat, minsFormat, secsFormat); 

Esto da un error de comstackción:

 Unresolved comstacktion problem: The method format(String, Object[]) in the type String is not applicable for the arguments (String, int, int, int) 

¿Por qué recibo este error aquí y cómo puedo solucionarlo?

Tuve un problema similar con printf. Estoy usando JDK 1.6.0_27. Establecer el nivel de cumplimiento en 1.6 resolvió mi problema. Esto se puede configurar de la siguiente manera.

Proyecto> Propiedades> Comstackdor de Java

También puede consultar el siguiente hilo:

¿Por qué recibo un error de comstackción con un simple printf?

¿Estás usando Java versión 1.4 o inferior? Autoboxing no se introdujo hasta Java 5. Intente manualmente boxing int s a Integer s.

Tienes jdk 1.4 o una versión inferior. El método String.format () se introduce en Jdk 1.5 .

Echa un vistazo a la publicación coderanch .

Voy a votar por una construcción limpia. No hay ninguna razón por la que deba fallar así, especialmente cuando intenta boxear manualmente en Entero. ¿Estás usando Eclipse? A veces se confunde, y solo tienes que reconstruir todo.

La firma del formato es:

 public static String format(String format, Object ... args) { return new Formatter().format(format, args).toString(); } 

y parece que no hay ningún error en su código, para mi sugerencia intente ejecutar esto con la aplicación de consola sin usar ningún IDE (para fines de prueba).

¿Estás usando eclipse?

Si es así, a veces aparecen problemas como este, cuando todo parece correcto. Así es como lo acabo de resolver:

  • Haga clic derecho en el proyecto y vaya a Propiedades-> Comstackdor de Java
  • Vería un nivel de cumplimiento del Comstackdor reciente (1.7 en mi caso) establecido en el menú desplegable (“nivel de cumplimiento del comstackdor”). También la misma versión se ve a continuación en “Compatibilidad con archivos .class generados” y “Compatibilidad con fonts”.

Ahora:

  • Seleccione la checkbox: “Usar la configuración de cumplimiento predeterminada”
  • Tenga en cuenta que una versión más baja (en mi caso, 1.1) se configuró para: “Compatibilidad con archivos .class generados” y “Compatibilidad con fonts”. Este es el problema, aunque Eclipse muestra que está comstackndo utilizando un comstackdor superior, pero no lo está.
  • En el “nivel de cumplimiento del comstackdor” desplegable, elija otro nivel y luego seleccione el que desee. Los cambios se reflejarán a continuación en “Compatibilidad con archivos .class generados” y “Compatibilidad con fonts”.

Esto debería haber resuelto el problema.