Формат метода (String, Object []) в типе String не применим для аргументов (...) - PullRequest
13 голосов
/ 09 октября 2011

Вот мой код:

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

Это дает ошибку компиляции:

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

Почему я получаю эту ошибку здесь и как я могу ее исправить?

Ответы [ 6 ]

15 голосов
/ 16 октября 2011

У меня была похожая проблема с printf.Я использую JDK 1.6.0_27.Установка уровня соответствия 1.6 решила мою проблему.Это можно установить следующим образом.

Проект> Свойства> Компилятор Java

Вы также можете обратиться к следующей теме:

Почему я получаюошибки компиляции с простым printf?

2 голосов
/ 11 сентября 2012

Вы используете Java версии 1.4 или ниже? Автобокс не был представлен до Java 5. Попробуйте вручную поставить int s на Integer s.

0 голосов
/ 08 октября 2017

Используете ли вы eclipse?

Если так, то иногда возникают подобные проблемы, когда все кажется правильным.Вот как я только что решил:

  • Щелкните правой кнопкой мыши по проекту и перейдите в свойства-> Компилятор Java
  • Вы увидите недавний уровень соответствия компилятору (в моем случае 1,7)установить в раскрывающемся списке («уровень соответствия компилятора»).Кроме того, та же версия показана ниже в «Сгенерированные файлы .class совместимости» и «Совместимость с источниками».

Сейчас:

  • Установите флажок: «Использовать параметры соответствия по умолчанию"
  • Обратите внимание, что более низкая версия (в моем случае 1.1) была установлена ​​для:" Совместимость созданных файлов .class "и" Совместимость с исходным кодом ".Это проблема, хотя eclipse показывает, что он компилируется с использованием более высокого компилятора, а это не так.
  • В раскрывающемся списке «Уровень соответствия компилятору» выберите другой уровень, а затем выберите тот, который вам нужен.Изменения будут отражены ниже в разделах «Совместимость созданных файлов .class» и «Совместимость с исходным кодом».

Это должно решить проблему.

0 голосов
/ 02 декабря 2011

подпись формата:

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

и в вашем коде нет ошибок, по моему совету попробуйте запустить его с консольным приложением, не используя IDE (для целей тестирования).

0 голосов
/ 09 октября 2011

Я буду голосовать за чистую сборку.Нет причины, по которой это должно происходить с ошибками, особенно когда вы пытаетесь вручную соединиться с Integer.Вы используете Eclipse?Иногда это запутывается, и вам просто нужно все перестроить.

0 голосов
/ 09 октября 2011

У вас есть jdk 1.4 или ниже версия. Метод String.format () введен в Jdk 1.5.

Взгляните на coderanch post.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...