'isPresent' 체크 없이 'Optional.get()'을 클릭합니다.
Java 검색 코드는 다음과 같습니다.
return getTableViewController().getMe().getColumns().stream()
.filter($ -> Database.equalsColumnName($.getId(), columnId))
.findFirst()
.get();
나는 칼럼을 이름으로 찾아서 처음 찾은 칼럼을 돌려주고 싶었다.
아무것도 발견되지 않은 경우는 알고 있습니다만, 어떻게 처리하면 좋을까요?
이런 욕설로 원하는 게 이거야?
'Optional.get()' without 'isPresent()' check
?
어떻게 고칠까?돌아오고 싶다null
아무 것도 발견되지 않으면.
갱신하다
알았어, 알았어, 난 몰랐을 뿐이야findFirst()
돌아온다Optional
.
교체하다get()
를 참조해 주세요.
...findFirst().orElse(null);
값이 있으면 값을 반환하고 없으면 값을 반환합니다.null
매뉴얼에 따르면 전달된 파라미터는 다음과 같습니다.null
(및 에 대해 금지되어 있는 것)
나의 해결책은 이렇게 확인하는 것이었다.
if(item.isPresent()){
item.get().setId("1q2w3e4r5t6y")
}
선택사항은 지난 수십 년 동안 코드가 생성되어 마침내 null을 피하기 시작했습니다.
.get()을 삭제하고 옵션 자체를 반환하고 발신자 코드를 적절히 처리합니다(null을 반환하는 경우와 마찬가지로).
아래와 같이 사용할 수 있습니다.
.map(Object)
.filter(Optional::isPresent)
.map(Optional::get)
.orElse(null)
언급URL : https://stackoverflow.com/questions/38725445/optional-get-without-ispresent-check
'programing' 카테고리의 다른 글
구성 x = x | y는 무엇을 의미합니까? (0) | 2022.09.19 |
---|---|
FFmpeg C API 매뉴얼/튜토리얼 (0) | 2022.09.19 |
Python MySQL이 새로 고쳐지지 않음 (0) | 2022.09.19 |
'DOMWindow'에서 'postMessage'를 실행하지 못했습니다. https://www.youtube.com !== http://localhost:9000 (0) | 2022.09.19 |
인덱스에도 불구하고 쿼리 성능이 느리다 (0) | 2022.09.12 |