Git Product home page Git Product logo

using-java-optional-correctly's Introduction

using-java-optional-correctly

자바 옵셔널 제대로 사용하기

참고

26 Reasons Why Using Optional Correctly Is Not Optional

Java Optional 바르게 쓰기

학습 목록

  1. 변수에 Null 할당 금지
  2. Optional.get() 호출 전 Optional 값 확인 하기
  3. 값이 없을 때 Optional.orElse() 메서드를 통해 이미 귀성된 기본 객체를 설정 또는 반환 해라
  4. 값이 없을 때 Optional.orElseGet() 메서드를 통해 존재하지 않는 기본 개체를 설정또는 반환해라
  5. 값이 없으면 orElseThrow()를 통해 java.util.NoSuchElementException 예외를 던져라 / Java 10 이상
  6. 값이 없으면 orElseThrow(Supplier<? extends X> exceptionSupplier)를 통해 명시적 예외를 던져라.
  7. --- 선택 항목이 있고 Null 참조가 필요한 경우 orElse(null)를 사용해라 ( 보류 ) ---
  8. Optional이 있으면 사용하고 존재하지 않으면 아무것도 하지 마라. 이건 Optional.ifPresent()를 위한 것이다.
  9. Optional이 있으면 사용하고 존재하지 않으면 Empty 기반 작업을 해라. 이것은 Optional.ifPresentElse() / Java 9 이상
  10. 값이 있을 때 해당 값을 선택적으로 설정또는 반환하고 값이 없는 경우 기타 옵션을 설정또는 반환해라. 이것은 Optional.or() 을 위한 작업임. / Java 9 이상.
  11. Optional.orElse/orElseXXX는 람다에서 isPresent()-get() 쌍을 완벽하게 대체한다.
    1. Example 1
    2. Example 2
  12. 값을 얻는 단일 목적으로 옵셔널의 메서드를 연결하지 말것
  13. 필드 유형을 선택 사항으로 선언하지 말것
  14. 생성자 인수에서 옵셔널을 사용하지 말것
  15. Setter 에서 옵셔널을 사용하지 마라
  16. 메서드 인수에서 옵셔널을 사용하지 마라
  17. Optional을 사용하여 빈 컬렉션이나 배열을 반환하지 말것
  18. 컬렉션에서 옵셔널을 사용하지 말것
  19. Optional.of()와 Optional.ofNullable()을 혼동하지 말자
  20. 선택적 를 피하고 일반이 아닌 OptionalInt, OptionalLong 또는 OptionalDouble을 선택하자
  21. Equals 를 위해 Optional 을 풀 필요가 없다.
  22. Map()과 flatMap()을 통해 값을 변환하라
  23. filter()를 사용하여 미리 정의된 규칙에 따라 래핑된 값 거부하기
  24. 옵셔널 API랑 스트림 API의 연결이 필요할까?
  25. 옵셔널에 대한 신원 감지 연산 사용을 피하라
  26. Optional 이 비어 있으면 Boolean 을 반환하자

using-java-optional-correctly's People

Contributors

nice7677 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.