Подтвердить что ты не робот

Формат метода (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)

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

4b9b3361

Ответ 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" и "Совместимость источников" .

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