Java value는 언제나 null이다. 이를 Kotlin에서 활용 시 주의할 점을 알아본다.

Java 변수는 언제나 null을 허용하고, Kotlin 변수는 null을 허용치 않는다. 그래서 타입 정의에서 항상 null을 허용할지 말지를 직접 정의해야 한다.

// null 허용
val name: String? = null

// NonNull
val name: String = null // 문법 오류

Kotlin은 null을 허용하려면 ?을 추가해 null 임을 알려야 한다. 코틀린 만 사용한다면 별다른 문제는 없다. 하지만 Kotlin은 언제나 Java를 활용할 수 있고, 안드로이드 개발에선 Java SDK를 활용한다.

어떤 경우에 null을 허용하고, 어떨 때 null을 허용치 않아야 하는지 명확하지 않을 수 있다.

이 글에서는 자바와 함께 사용할 때 null 관련 어노테이션의 중요성을 알아본다.


이 글에서 알아볼 내용

  • Java는 항상 null 임을 알아본다.
  • Android SDK 사용 시에는 Nullable로 처리해야 할까?
  • Java에서 Kotlin의 값을 호출 시에는 null에 주의해야 하는데 알아본다.

Read More

Kotlin과 Java의 Nested and Inner Classes를 알아보고, Nested classes를 왜 사용해야 하는지 알아본다.

Kotlin은 class 안에 class(중첩 클래스)를 정의할 때 기본 Nested classes 룰을 사용한다.

inner classes가 아닌 이유를 찾기엔 자바를 이해하는 편이 가장 좋다. 이 글에서는 Java의 inner classes와 Nested classes를 통해 코틀린의 Nested classes 이유를 알아본다.


이 글에서 알아볼 내용

  • Java Inner classes와 Nested classes를 알아본다.
  • Kotlin의 Inner classes와 Nested classes를 알아본다.
  • Java의 어떤 문제로 코틀린은 Nested classes가 기본인지를 살펴본다.

Read More

Kotlin interface에는 왜 상수를 정의할 수 없을까?

Kotlin의 interface에서는 상수를 정의할 수 없다. 상수를 허용하지 않는 이유는 Java에서 이유를 찾는 게 빠르다.

이 글에서는 Java의 interface에서 왜 상수를 정의하지 않는 게 좋은지에 대해 알아본다.

수정. java 7이 아닌 java 8에서 interface의 default/static이 추가되어 수정합니다.


이 글에서 알아볼 내용

  • Java interface의 상수를 알아보고, 문제점을 알아본다.
  • kotlin interface의 상수 정의가 왜 없는지를 Java를 통해 알아본다.
  • Java 8의 interface에 추가된 default/static 사용에 대해 알아보고, 코틀린의 default 함수도 알아본다.

Read More

Kotlin extensions use를 알아보고, 사용법을 알아보자.

Kotlin의 extensions 중 use가 있다. 이 use의 알맞은 사용 방법을 알아보려면 Java의 Closeable을 간단하게 알고 넘어가면 좋을 것 같다.

이 글에서는 kotlin에서의 Closeable 처리를 알아보고, use를 간단하게 소개한다.


이 글에서 알아볼 내용

  • AutoCloseable과 Closeable을 알아본다.
  • kotlin의 exception 처리를 알아본다.
  • kotlin의 use를 이용하자.

Read More

Kotlin extensions 정의를 알아보고, 활용 시 주의할 부분을 알아보자.

Kotlin에서는 extensions의 사용은 매우 자유롭다. 기존 클래스에 포함되어 있지 않은 Member를 새롭게 구성해 원하는 형태를 사용할 수 있다.

이번 글은 extensions 정의 시 알아두면 좋을 부분을 소개한다.


이 글에서 알아볼 내용

  • Kotlin Extensions 정의를 알아본다.
  • Kotlin extensions 활용 시 알아야 할 점을 알아본다.
  • Kotlin extensions을 특정 클래스 내에 정의할 때 주의할 점을 알아본다.

Read More