[JPA] kotlin에서 옵셔널 반환하는 기본 메서드를 어떻게 처리할까

가영·2021년 10월 10일
0

바로, 결론

코틀린에서도 get()으로 옵셔널 값을 가져와야한다.

그냥 get() 을 써서 값을 가져와야한다.
나는 당연히 kotlin nullable type 과 호환될 줄 알았는데 충격적이게도 아니었다.

우리가 리포지토리 구현체를 작성하는 것이 아니니 코틀린스럽지 않더라도 구현돼있는 대로 사용하는게 더 편한 것 같다!

그리고 막상 생각해보니까 nullable이나 이거나 사용성은 비슷하긴하다.
왜냐면 실제로 리포지토리 사용 로직을 작성할 때는 항상 이런식이었다.

val 뫄뫄: 마마 = 마마Repository.findById(id)
    .orElseThrow { throw OOOOException("...") }

옵셔널을 사용하는 것도 진짜 간단했다.
제발 생각이라는 것을 하자.
실제로 코틀린에서 nullable 처리를 할 때는 다음처럼 진행한다.

fun returnNullable(isNull: Boolean): String? {
    if (isNull) return null
    return "Nonnull"
}

fun nullableTest(hi: Boolean) {
    val nullableStr: String = returnNullable(hi) ?: throw IllegalStateException()
}

그냥 아무 생각이 없었다. 반성하자

1개의 댓글

comment-user-thumbnail
2021년 12월 2일

"제발 생각이라는 것을 하자" ㅋㅋㅋㅋㅋ 잘 읽고 갑니다 :)

답글 달기