Using constants efficiently
Since everything in Java is an object (unless it's a primitive type), we're used to putting all the constants inside our objects as static members.
And since Kotlin has companion
objects, we usually try putting them there:
class Spock { Â Â Â Â companion object { Â Â Â Â Â Â Â Â val SENSE_OF_HUMOR = "None" Â Â Â Â } }
This will work, but you should remember that companion object
is an object, after all.
So, this will be translated into the following code, more or less:
public class Spock { Â Â Â Â private static final String SENSE_OF_HUMOR = "None"; Â Â Â Â public String getSENSE_OF_HUMOR() { Â Â Â Â Â Â Â Â return Spock.SENSE_OF_HUMOR; Â Â Â Â } Â Â Â Â ... }
In this example, the Kotlin compiler generates a getter for our constant, which adds another...