[Kotlin] Optional vs Kotlin Nullable 문법 비교하기
번외 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") // 값이 존재하면 해당 값을 사용하고, 값이 없으면 예외를 발생시킴