Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> format - проблема с параметрами 
:(
    Опции темы
talker
Дата 16.5.2010, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 5.5.2008

Репутация: нет
Всего: нет



Возникла непонятная ошибка с выполнением примера из одного учебника по Java

Код

StringBuffer buffer = new StringBuffer();
Formatter formatter = new Formatter(buffer, Locale.US);
formatter.format("Значение числа PI %6.3f", Math.PI);


Запускаю в Eclipse, получаю ошибку 

The method format(String, Object[]) in the type Formatter is not applicable for the arguments (String, double)


Удивился, попробовал привести double к Object[]

Код

formatter.format("Значение числа PI %6.3f", new Object[] {Math.PI});


Всё равно ошибка

Type mismatch: cannot convert from double to Object

Попробовал String.format() и System.out.format() - та же проблема. 

Гугль такую ошибку не знает, да и пример встречается в Гугле очень часто. Подскажите, я как-то неправильно настроил Eclipse или чего-то не понимаю?

PM MAIL   Вверх
jk1
Дата 16.5.2010, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Сначала проверьте используемую версию JDK, выглядит так, как будто она меньше 1.5 и не работает autoboxing. 
В качестве выхода в данной конкретной ситуации попробуйте написать так:
Код

StringBuffer buffer = new StringBuffer();
Formatter formatter = new Formatter(buffer, Locale.US);
formatter.format("Значение числа PI %6.3f", new Double(Math.PI));



--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
talker
Дата 16.5.2010, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 5.5.2008

Репутация: нет
Всего: нет



Цитата(jk1 @  16.5.2010,  19:46 Найти цитируемый пост)
выглядит так, как будто она меньше 1.5

1.6


Цитата(jk1 @  16.5.2010,  19:46 Найти цитируемый пост)
и не работает autoboxing. 

Не нашёл такой галочки в Eclipse. Можете подсказать? (гуглил)


Цитата(jk1 @  16.5.2010,  19:46 Найти цитируемый пост)
В качестве выхода в данной конкретной ситуации попробуйте написать так:

Не помогает.
PM MAIL   Вверх
jk1
Дата 16.5.2010, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Из чистого интереса скачал Eclipse в Java SE комплектации, ваш код компилируется и запускается прямо из коробки, без каких бы то ни было настроек.
Цитата

Не нашёл такой галочки в Eclipse. Можете подсказать? (гуглил)

Нет такой галочки и быть не может. Autoboxing - автоматическая обертка компилятором примитивных типов в объектные оболочки. То есть это feature языка и к IDE отношения не имеет.
Цитата

Не помогает. 

Описывайте симптомы, сообщения компилятора, исключения, возникающие у вас при проверке моего куска кода.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Nofate
Дата 17.5.2010, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 13.10.2008

Репутация: 4
Всего: 8



Странно, что он просит на вход массив.
Попробуйте такой изощренный вариант: =)
Код

StringBuffer buffer = new StringBuffer();
Formatter formatter = new Formatter(buffer, Locale.US);
formatter.format("Значение числа PI %6.3f",  Arrays.asList(Math.PI).toArray());


Хотя врядли поможет...

Еще одна мысль: а если попробовать скомпилировать не эклипсом а непосредственно javac-ом?

Это сообщение отредактировал(а) Nofate - 17.5.2010, 10:20


--------------------
The future is not set, there is no fate but what we make for ourselves.
Нофейтово пространство и смежные области 
PM MAIL WWW ICQ   Вверх
jk1
Дата 17.5.2010, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Цитата

Странно, что он просит на вход массив.

Ничего странного в этом нет: в сигнатуре метода прописан varargs для того, чтобы можно было передавать переменное число аргументов. При передаче параметров происходит неявное преобразование их в массив Object[] c autoboxing'ом, если возникает необходимость.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Nofate
Дата 17.5.2010, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 13.10.2008

Репутация: 4
Всего: 8



Вот не зря я боялся, что глупость скажу.. )
2 jk1: спасибо, что просветили )


--------------------
The future is not set, there is no fate but what we make for ourselves.
Нофейтово пространство и смежные области 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1121 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.