確認し、入力はnullまたは "12"、 "14"などですJavaの8オプションナルは入力、出力が nullにするか、入力が文字列であれば、それは「ABCD」になることはありませんロング</p> <p>と仮定すると、入力に変換する必要があるnullの場合、私はチェックしようとしています
次のコードスニペットは、Java 8のオプションを正しく使用できないため、NULLポインタ例外をスローします。私はnullポインタの例外をキャッチするか、/ elseを3次の '?'オプションでこのシナリオを処理する方法はありますか?
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
これは 'ternary'ですか? :-) IMOあなたのケースではオプションを使用する必要はありません。 'input!= nullのようなもの? Long.valueOf(入力):null'は大丈夫です。 @pvgの言うことも妥当です。 –