Junior — Middle
Jaké jsou rozdíly v systému typů mezi Java a Kotlin?
sobes.tech AI
Odpověď od AI
Java je jazyk s pevným typováním, kde jsou primitivní typy (int, boolean atd.) a referenční typy jasně odděleny. V Kotlinu jsou typy více sjednocené: všechny jsou objekty, včetně analogů primitivních typů, díky systému obalovačů, který je optimalizován kompilátorem.
Hlavní rozdíly:
- Null-bezpečnost: V Kotlinu typy ve výchozím nastavení nemohou obsahovat null, aby se předešlo NullPointerException. Pro nullable typy se používá syntaxe s otazníkem, například
String?. - Generické typy: Kotlin podporuje flexibilnější systém generik s variancí (in, out), v Javě je to realizováno pomocí wildcardů.
- Datové typy: Kotlin má rozšířené typy, například
Unitmístovoid, a podporuje rozšíření typů.
Příklad null-bezpečnosti v Kotlinu:
var a: String = "Hello"
// a = null // Chyba při kompilaci
var b: String? = "Hello"
b = null // Povolené