loose
이로운 개발하기
loose
전체 방문자
오늘
어제
  • 전체 (204)
    • ☕ Java (24)
    • 📘 Effective Java (9)
    • 🍃 Spring (47)
    • 📖 ORM (9)
    • ☸️ Kubernetes (13)
    • 🐧 Linux (5)
    • 🐋 Docker (5)
    • 🛠️ CI & CD (7)
    • 🕸️ Web (6)
    • 🔗 Distributed System (3)
    • 📜 Js (10)
    • 📈 Database (11)
    • 🗂️ Etc (34)
    • 🧑 Chitchat (11)
    • 📒 문학 (9)
    • 👜 개인 공부 창고 (1)

공지사항

반응형

최근 글

최근 댓글

loose

이로운 개발하기

☕ Java

[Kotlin] Optional vs Kotlin Nullable 문법 비교하기

2023. 6. 21. 04:24
반응형

번외 Optional을 안쓰고 전부 Kotlin 문법으로 하기 
 val user = userRepository.findByUsername(username)
        .orElseThrow { CannotFindUserException(username) }
 val user = userRepository.findByUsername(username)
        ?: throw CannotFindUserException(username)


Optional<String> optionalValue = // Optional 타입의 값
String result = optionalValue.orElse("default"); // 값이 존재하면 해당 값을 사용하고, 값이 없으면 "default"를 사용

Optional<String> optionalValue = // Optional 타입의 값
String result = optionalValue.orElseGet(() -> getValueFromSupplier()); // 값이 존재하면 해당 값을 사용하고, 값이 없으면 Supplier를 통해 값을 가져옴

Optional<String> optionalValue = // Optional 타입의 값
String result = optionalValue.orElseThrow(() -> new IllegalStateException("Value is null")); // 값이 존재하면 해당 값을 사용하고, 값이 없으면 예외를 발생시킴

val value: String? = // Nullable 타입의 값
val result = value ?: "default" // 값이 존재하면 해당 값을 사용하고, 값이 없으면 "default"를 사용

val value: String? = // Nullable 타입의 값
val result = value ?: getValueFromSupplier() // 값이 존재하면 해당 값을 사용하고, 값이 없으면 getValueFromSupplier()를 호출하여 값을 가져옴

val value: String? = // Nullable 타입의 값
val result = value ?: throw IllegalStateException("Value is null") // 값이 존재하면 해당 값을 사용하고, 값이 없으면 예외를 발생시킴

728x90

'☕ Java' 카테고리의 다른 글

Java Stream 사용법 ( 당신의 Stream은 안녕하십니까? )  (0) 2023.08.26
커스텀 어노테이션과 리플렉션  (0) 2023.07.30
java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter  (0) 2023.06.21
[Java] JVM Warmup  (0) 2023.03.12
[Java] Object, Objects 차이  (1) 2023.02.20
    '☕ Java' 카테고리의 다른 글
    • Java Stream 사용법 ( 당신의 Stream은 안녕하십니까? )
    • 커스텀 어노테이션과 리플렉션
    • java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
    • [Java] JVM Warmup
    loose
    loose
    불만하는 사람은 90명, 해결하는 사람은 9명, 리드하는 사람은 1명 음악과 낭만을 좋아합니다.
    hELLO. 티스토리 스킨을 소개합니다.
    제일 위로

    티스토리툴바