Формат метода (String, Object []) в типе String не применим для аргументов (...)
Вот мой код:
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)
Почему я получаю эту ошибку здесь и как ее исправить?
Ответы
Ответ 1
У меня была аналогичная проблема с printf. Я использую JDK 1.6.0_27. Установка уровня соответствия на 1.6 решила мою проблему. Это можно установить следующим образом.
Проект > Свойствa > Компилятор Java
Вы также можете обратиться к следующему разделу:
Почему я получаю ошибки компиляции с помощью простого printf?
Ответ 2
Используете ли вы Java версии 1.4 или ниже? Autoboxing не было введено до Java 5. Попробуйте вручную бокс int
до Integer
s.
Ответ 3
У вас есть jdk 1.4
или ниже версии. Метод String.format() вводится в Jdk 1.5
.
Посмотрите coderanch сообщение.
Ответ 4
Я собираюсь голосовать за чистую сборку. Там нет причин, по которым это должно быть неудачно, особенно, когда вы пытаетесь вручную боксировать Integer. Вы используете Eclipse? Иногда это путается, и вам просто нужно перестроить все.
Ответ 5
Подпись формата:
public static String format(String format, Object ... args) {
return new Formatter().format(format, args).toString();
}
и, кажется, никаких ошибок в вашем коде не существует, поскольку мое предложение пытается запустить это с помощью консольного приложения без использования какой-либо IDE (для целей тестирования).
Ответ 6
Используете ли вы eclipse?
Если так иногда возникают такие проблемы, когда все кажется правильным. Вот как я только что решил:
- Щелкните правой кнопкой мыши по проекту и перейдите к свойствам- > Компилятор Java
- Вы увидите недавний уровень соответствия компилятора (1.7 в моем случае), установленный в раскрывающемся списке ( "уровень соответствия компилятора" ). Также такая же версия показана ниже в разделе "Сгенерированные совместимые файлы .class" и "Совместимость источников" .
Сейчас:
- Установите флажок: "Использовать настройки соответствия по умолчанию"
- Обратите внимание, что более низкая версия (в моем случае 1.1) установлена для: "Сгенерирована совместимость файлов .class" и "Совместимость источников" . Это проблема, хотя eclipse показывает, что она компилируется с использованием более высокого компилятора, а это не так.
- В раскрывающемся списке "Уровень соответствия компилятора" выберите другой уровень, а затем выберите тот, который вы хотите. Изменения будут отражены ниже в разделе "Сгенерированные совместимости файлов .class" и "Совместимость источников" .
Это должно было решить проблему.