BTW, I think in Java, optional is more or less equivalent to null. But Java doesn't tell you if a field can or cannot be null. You're going to find out when you run the code. That's one of the reasons why I prefer Kotlin. The type `T` means it must not be null. If you want nullable types, you must write `T?`.