Automatic creation of getters and setters
For a given var
declaration in the constructor, the compiler will create the getters and setters automatically. Considering the title field, the compiler has actually created a getTitle
and setTitle
method. This means interacting with Java would now translate to calling these two methods:
public final java.lang.String getTitle(); Code: 0: aload_0 1: getfield #11 // Field title:Ljava/lang/String; 4: areturn public final void setTitle(java.lang.String); Code: 0: aload_1 1: ldc #17 // String <set-?> 3: invokestatic #23 // Method kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V 6: aload_0 7: aload_1 8: putfield #11 // Field title:Ljava/lang/String; 11: return
The code is pretty straightforward. In the setter code body, see line 3, we have an implicit check for null values via the standard library method, checkParameterIsNotNull...