Java8リストは要素はnullを返します

Nuñito・デ・ラ・カルサダ:

私は、私が存在する場合の要素を返すようにしたいコードのこの作品、そうでない場合はnullを持っています

List<String> myList = new ArrayList<>();
myList.add("Test");
myList.add("Example");
myList.add("Sth");

String str = myList.stream()
            .filter(x -> x.equals("eee"))
            .findFirst()
            .orElseGet(null);

しかし、私はとにかくjava.lang.NullPointerExceptionが「メイン」スレッドで例外が発生しました

ernest_k:

orElseGetサプライヤーを取ります。あなたは利用したいですorElse

.findFirst().orElse(null);

これは、リターンヌルへのサプライヤーを使用するにはあまり意味がありませんが、あなたがした場合、それは次のようになります。

.findFirst().orElseGet(() -> null); //if argument is null, you get the NPE

ののJavaDoc orElseGet(追加用バンバンさんのコメントのおかげで)それを言及します:

例外
NullPointerExceptionが -値が存在しないと、他のがnullの場合

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=137384&siteId=1