Основные типы, такие как Int
, Double
, Char
и т. Д., Представлены в JVM одним из двух способов ( документация ):
- всякий раз, когда это возможно, в качестве примитивов (
int
, double
, char
), - , когда требуется обнуляемость или при использовании в качестве параметров универсального типа, в качестве соответствующих классов-оболочек (
Integer
, Double
, Character
).
Оба эти представления являются сериализуемыми.Примитивные типы по умолчанию являются сериализуемыми, и все их оболочки также реализуют Serializable
, например, как вы можете видеть в документации Character
.
Этот видо сопоставлении между типами Kotlin и Java также упоминается здесь в документации по взаимодействию Java.
Таким образом, вопрос в том, почему представления Kotlin не имеют Serializable
в качестве супертипа науровень исходного кода?Я предполагаю, что они остаются независимыми от платформы, так как их явная реализация java.io.Serializable
заставит их напрямую зависеть от типа JVM.