A minor Kotlin annoyance. If you have a Java class with a
public final field, such that you just reference it as
foo.bar, then it'd be nice for a Kotlin equivalent to be accessible in the same way.
Problem is, Kotlin/Java interop converts that to Java Bean style, so a Kotlin
foo.bar has to be accessed as
foo.getBar() from Java code. I was tearing my hear out wondering why the compiler thought the field I was accessing had 'private access' when it so obviously didn't.
Upshot: cue some editing when converting Java classes to Kotlin.
Probably not a huge issue for most 'idiomatic' Java, but I've long been a fan of exposing immutable fields for struct-ish types this way (subject to usual public API caveats etc; it's trivially easy for internal-only code to be refactored into method accessors if you ever need it, and in the meantime, you have cleaner code, cf. any language which supports properties).