If you create an instance of BlogEntry, and then get the autocompletion dialog and navigate through the available methods, you will notice nine methods; these methods start with a series of components—component1(), component2(), and component9(). Each of these methods corresponds to each of the fields defined by type. Their return type will, therefore, match their respective field type. Here is the snippet for component6(), corresponding to the url field:
public final java.net.URI component6(); Code: 0: aload_0 1: getfield #51 // Field url:Ljava/net/URI; 4: areturn
The Scala developer reading this will most likely think of the product class and pattern matching. Kotlin is not as powerful when it comes to pattern matching, but it still gives you a flavor of it.
You might find it quite useful to break the object into...