Является ли неверным Javadoc для String.chars () и String.codePoints ()?

1

Глядя на метод String.chars() в Java 8, мы можем видеть следующий javadoc:

default IntStream chars()

Возвращает поток int zero, расширяющий значения char из этой последовательности. Любой символ, который сопоставляется суррогатной кодовой точке, передается через неинтерпретируемый.

Если последовательность мутируется во время чтения потока, результат не определен.

Возвращает:
IntStream значений char из этой последовательности
Поскольку:
1,8

Как мы видим, нам пришлось найти этот javadoc в CharSequence, поскольку он не был переопределен в String. Те же аргументы здесь также относятся к String.codePoints().

В javadoc описано, что:
Если последовательность мутируется во время чтения потока, результат не определен.

Но строки (в отличие от CharSequence) неизменяемы, следовательно, javadoc здесь некорректен для класса String? Я чувствую, что он по-прежнему правилен по логике, но это также подразумевает, что chars[] в String могут быть мутированы, что напрямую связано с неизменностью.

Теги:
string
java-8
javadoc

1 ответ

6

Ну, это только связанная с языком, семантическая проблема. Javadoc применяется к любой последовательности символов, изменяемой или нет. В нем говорится, что если последовательность изменена, то результат этих методов не определен.

Бывает так, что при вызове этого метода в String невозможно изменить последовательность, поскольку строки являются неизменяемыми.

Вышеизложенное не означает, что Струны теряют неизменность из-за этого метода.

Подобно предложению "если у животного есть ноги, то он может ходить" не означает, что у всех животных есть ноги.

  • 0
    Я должен был добавить, что это может подразумевать неизменность строк для пользователей, не знакомых с логикой рассуждений. Я все еще думаю, что это сформулировано сомнительно.
  • 2
    Пользователи, не знакомые с логикой рассуждений, должны ознакомиться с ней, прежде чем рассматривать программирование, ИМХО. Программирование это все о логике.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню