С точки зрения дизайна, когда вы пишете API, хорошо передать ответственность за обработку неопределенного поведения пользователю, а не пытаться обрабатывать его самостоятельно.
В комментариях говоритсячто вы должны использовать predecessor()
только тогда, когда это не может быть null
, поэтому он проверяет, чтобы убедиться, что это не null
- но если это так, то поведение не определено, и вы должны уведомить пользователя.
Может быть, есть что-то особенное для JVM, для которого это полезно, но кто-то с лучшим знанием этого должен будет поговорить об этом.