Java와 비교
Kotlin에서 해결된 일부 Java 문제
Kotlin은 Java가 겪는 일련의 문제들을 해결합니다.
- Null 참조는 타입 시스템에 의해 제어됩니다.
- Raw 타입이 없습니다
- Kotlin의 배열은 불변입니다
- Kotlin은 Java의 SAM-conversion과 달리 적절한 함수 타입을 가지고 있습니다.
- 와일드카드 없는 Use-site variance
- Kotlin은 checked 예외를 가지고 있지 않습니다.
- 읽기 전용 및 변경 가능한 컬렉션을 위한 별도의 인터페이스
Kotlin에 없는 Java의 기능
- Checked 예외
- 클래스가 아닌 Primitive 타입. 바이트 코드는 가능한 경우 primitive 타입을 사용하지만 명시적으로 사용할 수는 없습니다.
- Static 멤버는 companion objects, top-level functions, extension functions 또는 @JvmStatic으로 대체됩니다.
- Wildcard-types는 declaration-site variance 및 type projections로 대체됩니다.
- 삼항 연산자
a ? b : c
는 if expression으로 대체됩니다. - Records
- Pattern Matching
- package-private visibility modifier
Java에 없는 Kotlin의 기능
- Lambda expressions + Inline functions = 성능이 뛰어난 사용자 정의 제어 구조
- Extension functions
- Null-safety
- Smart casts (Java 16: Pattern Matching for instanceof)
- String templates (Java 21: String Templates (Preview))
- Properties
- Primary constructors
- First-class delegation
- 변수 및 프로퍼티 타입에 대한 타입 추론 (Java 10: Local-Variable Type Inference)
- Singletons
- Declaration-site variance & Type projections
- Range expressions
- Operator overloading
- Companion objects
- Data classes
- Coroutines
- Top-level functions
- Default arguments
- Named parameters
- Infix functions
- Expect and actual declarations
- Explicit API mode 및 API 표면에 대한 더 나은 제어
다음 단계는?
다음 방법을 알아보세요.