Sobes.tech
Junior — Middle

Jakie są różnice w systemie typów między Java a Kotlin?

sobes.tech AI

Odpowiedź od AI

Java jest językiem z statycznym typowaniem, gdzie typy podstawowe (int, boolean itp.) i typy referencyjne są wyraźnie oddzielone. W Kotlinie typy są bardziej zunifikowane: wszystkie są obiektami, w tym odpowiedniki typów podstawowych, dzięki systemowi opakowujących, który jest optymalizowany przez kompilator.

Główne różnice:

  • Bezpieczeństwo null: W Kotlinie domyślnie typy nie mogą zawierać null, aby uniknąć NullPointerException. Dla typów nullable używa się składni z znakiem zapytania, np. String?.
  • Typy generyczne: Kotlin obsługuje bardziej elastyczny system generyków z wariancją (in, out), w Java jest to realizowane przez wildcardy.
  • Typy danych: Kotlin ma rozszerzone typy, np. Unit zamiast void, i obsługuje rozszerzenia typów.

Przykład bezpieczeństwa null w Kotlinie:

var a: String = "Hello"
// a = null // Błąd kompilacji

var b: String? = "Hello"
b = null // Dozwolone