4 ms·
you failed to mention that Kotlin has platform types only if it's interoperates with Java. Platform types are for objects that come over from Java code (and the
by simon_void 2y ago
you failed to mention that Kotlin has platform types only if it's interoperates with Java. Platform types are for objects that come over from Java code (and therefore have unspecified nullability (assuming the Java code doesn't use nullability annotations)).
Admittedly you provided a link that explains this, but how many people will follow the link? And yes, this detail feels kind of important.
And yes, future Java (and Kotlin) will only have their version of platform types to interop with old Java code.
As a long-time Kotlin user I can only say: Nullability is nice! Once you know it, you won't want to code without it.
- mmis1000 2y agoThe type kotlin generated from java code also inserts nullable specifier if java code have @NonNull or @Nullable specified. When kotlin see these exist. It will convert the type to null enforced type instead. Which give you a tool to gradually convert you project to null enforced type if you can't convert it to kotlin at once.
- unscaled 2y agoI did mention all of this: "[...] but Kotlin still needs to support [platform types] to maintain compatibility with underlying platforms that support unspecified nullability, such as the JVM and JavaScript." To be more accurate, "platform types" are not used with JavaScript, but you do get something similar in that case. I haven't worked with Kotlin/JS at all, but from my understanding if you do not have proper type definitions, you have to deal with dynamic types - which are also nullable.