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.
Unitzamiastvoid, 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