Я пытаюсь проверить, если вход нуль, то результат должен быть пустым Или, если вход String, то он должен преобразовать его в Лонг вводаJava 8 Дополнительный Null Проверка
Предполагая, что никогда не «ABCD», ввод является либо нулевым, либо «12», «14» и т. д.
Следующий фрагмент кода генерирует исключение нулевой указатель, так как я не могу использовать Java 8 Необязательно. Я могу поймать исключение нулевого указателя или использовать if/else с третичным '?' оператора, но есть ли способ справиться с этим сценарием с опцией?
public class OptionalClass {
public void methodA(String input) {
System.out.println(Long.valueOf(Optional.ofNullable(input).orElse(null)));
}
public static void main(String[] args) {
new OptionalClass().methodA("12");// This works fine
new OptionalClass().methodA(null); // This throws null pointer exception
} }
* почему * вы хотите использовать опционально? Я не вижу никакой пользы для вашего дела. – GurV
. На самом деле это не '' Факультативный'. И вы не хотите поймать NPE. Просто используйте третичный, хотя лучший дизайн заключается в том, чтобы сказать, что контракт просто не разрешает null - тогда бросание NPE - это то, что должно произойти, и происходит автоматически, а ваш код намного проще. – pvg
Разве это не «тройной»? :-) IMO нет необходимости использовать опционально в вашем случае. Что-то вроде 'input! = Null? Long.valueOf (ввод): null' похоже ok. То, что @pvg говорит, также разумно. –