inflearn logo
강의

講義

知識共有

Java開発者向けのコトリン入門(Java to Kotlin Starter Guide)

第2講.Kotlinにおけるnullの扱い方

플랫폼 타입 설명 문의

解決済みの質問

76

not

投稿した質問数 10

2

안녕하세요.

플랫폼 타입 설명 중에서 라이브러리를 가져다 쓴 지점을 래핑해서 단일 지점으로 만듦으로써 이슈를 쉽게 대응한다는 게 어떤 말씀이신지 잘 이해나 상황이 그려지지 않아서.. 이게 어떤건지 예시를 통해 알려주실 수 있는지 궁금해서 질문을 남깁니다.

 

'래핑해서 단일 지점으로 만든다'라는 개념과, 이렇게 만들면 이슈를 어떻게 왜 쉽게 대응할 수 있다는건지 이런 부분을 잘 모르겠습니다 ㅠㅠ

java kotlin 객체지향

回答 2

1

lannstark

안녕하세요! 🙂 다행히 이전 답변을 보고 해결 되셨군요! 다행이네요~

이렇게 어떠한 자원을 한 곳으로 모아 관리하는 기법은 꼭 언어 레벨이 아니라 DB 레벨, 컴포넌트 레벨 등 다양하게 사용되는 패턴입니다.

언제든지 또 궁금한 점 생기시면 찾아주세요~ 감사합니다! 🙇

1

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 나구리님.

플랫폼 타입과 관련하여 ‘래핑해서 단일 지점으로 만든다’는 개념은 Java와 Kotlin 간의 타입 안전성을 관리하기 위한 기법 중 하나입니다. 이 방법은 Java 코드와 Kotlin 코드의 상호 운용성을 높이고, 예기치 않은 NullPointerException(NPE)을 방지하기 위해 사용됩니다.

래핑(Wrapping)의 개념과 장점:

  1. 단일 지점 관리를 통한 실수 방지: Java의 플랫폼 타입은 Null 안정성을 보장하지 않기 때문에, Kotlin에서는 불확실한 Null 가능성을 항상 염두에 두어야 합니다. 이러한 상황에서 Java 코드를 바로 사용하지 않고, Kotlin 코드에서 한 번 래핑하여 안전성을 보장하는 함수를 작성합니다. 이를 통해, Java 객체를 직접 호출하는 부분의 코드를 줄이고 Null 값을 처리하는 로직을 중앙 집중화 할 수 있습니다.

  2. 리팩터링과 유지관리의 용이함: 래핑 함수를 이용하면 Java 코드의 변경사항이 생기더라도, 여러 곳에 퍼져 있는 코드를 수정할 필요 없이 래핑 함수만 변경하면 됩니다. 따라서 코드 유지보수가 용이해집니다.

예를 들어, Java에서 List<String>을 반환하는 코드를 Kotlin에서 사용할 때, Null 가능성을 명확히 처리하고 싶다면 이를 래핑하여 다음과 같이 사용할 수 있습니다:

// Kotlin에서 Java 코드를 안전하게 이용하는 함수
fun JavaCode.getUserNamesSafe(): List<String?> {
    return this.getUserNames()?.filterNotNull() ?: emptyList()
}

이처럼 래핑된 함수를 사용하여 플랫폼 타입의 불확실성을 안전하게 관리하고, 코드가 주는 영향을 적절히 제한할 수 있습니다.

관련 질문에 대한 토론은 다음 링크를 참고해 주세요:
- “코틀린으로 한번 래핑 (수정)”

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

1

not

ai 링크 질문으로 해결되었습니다.

수업노트

0

53

1

싱글톤과 스프링

0

71

2

get() = 3

0

49

2

강사님

0

74

1

강의 복습하면서 생긴 질문

1

94

1

Kotlin과 Java의 현업에서의 활용

0

124

2

data class와 자바의 Lombok을 이용한 DTO 클래스 차이 질문

0

74

1

코틀린에서 상속 시, 주의점에 대한 질문

1

95

3

내용 이해 질문

0

56

1

자바와 코틀린의 함수형 프로그래밍,

1

91

1

널 아님 단언 관련 질문

0

83

1

강의 중 질문

0

79

2

범위 비교 질문

1

91

2

타입캐스팅 궁금한점 질문드립니다.

1

239

2

코틀린 val 질문

0

166

2

완강 후 Kotlin 이런저런 질문 드려봅니다!

3

408

2

확장함수 스타일 질문

0

139

2

확장 프로퍼티 질문

1

156

1

update 함수를 만든다는게 어떤 의미인지 예시가 궁금합니다!

1

283

1

java class의 NotNull 어노테이션 인식

1

262

1

[16강] 확장함수 관련 질문입니다!

1

131

2

리턴타입 사용시 any를 사용해도 괜찮은가요?

1

139

1

안녕하세요 scope function 에 receiver 가 없는 경우

1

169

1

코틀린 싱글톤 질문

1

219

1