Val int: Int? = str?.toIntOrNull() Null-safety in Java The above approach is pretty boilerplate-y, so Kotlin offers the null-safe operator to achieve the same: The way to fix the above code is to check whether the variable is null before calling its members: If Kotlin allows null values, why do its proponents tout its null safety? The compiler refuses to call members on possible null values, i.e., nullable types. In Kotlin, every type X has two indeed two types: However, they are baked into the type system. Null-safety in KotlinĪs I mentioned, Kotlin does allow null values. Some languages do not allow uninitialized values, such as Rust. Null values are found in many programming languages under different names: If one calls a member of such a variable, the runtime locates the memory address of the variable… and fails to dereference it because there’s nothing behind it. The basic idea behind null is that one can define an uninitialized variable. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years. But I couldn’t resist the temptation to put in a null reference, simply because it was so easy to implement. My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). It was the invention of the null reference in 1965. I guess that everybody in software development with more than a couple of years of experience has heard the following quote: In this post, I’d like to expand on the problem of nullability and how it’s solved in Kotlin and Java and add my comments to the Twitter thread. Martin Bonnin did a tweet from a single slide, and it created quite a stir, even attracting Brian Goetz. What I miss in Java, the perspective of a Kotlin developer, in the Friends of OpenJDK devroom Practical Introduction to OpenTelemetry Tracing, in the Monitoring and Observability devroom FOSDEM is specific in that it has multiple rooms, each dedicated to a different theme and organized by a team. Last week, I was at the FOSDEM conference. NLJUG Academy Masterclasses: Java Flight Recorder.
0 Comments
Leave a Reply. |