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

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