MessageFormat.format() выдает исключение ClassCast [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 MessageFormat.format() выдает исключение ClassCast [закрыто]

Сообщение Anonymous »

Следующий фрагмент кода вызывает исключение ClassCastException.
Я знаю, как это исправить, но разочарован тем, что мне вообще придется это исправлять, поскольку в документации Javadoc указано, что это должно работать. Но реализация пытается привести его к массиву (без проверки).

Код: Выделить всё

  @Test
public void testHelloWorldFormat() {
MessageFormat fmt = new MessageFormat(
"Hello, {0}.");

assertThat(fmt.format("world")).isEqualTo("Hello, world.");
}
Мне нужно написать это по следующему принципу, и мне это не нравится:

Код: Выделить всё

  @Test
public void testHelloWorldFormat() {
MessageFormat fmt = new MessageFormat(
"Hello, {0}.");

assertThat(fmt.format(new String[] { "world" })).isEqualTo("Hello, world.");
}
Соответствующая ссылка: javadoc MessageFormat.
Я нашел причину проблемы:
Я вызываю метод из общего суперкласса Format

Код: Выделить всё

public final String format(Object obj) 
С помощью общего javadoc «Форматирует объект для создания строки.»

Подробнее здесь: https://stackoverflow.com/questions/798 ... -exception
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»