The trick to remove "var" in constructor..If someb...
# getting-started
e
The trick to remove "var" in constructor..If somebody interested, this is my final code:
Copy code
class ItemStack(val id: Int, quantity: Int, metadata: Int = 0) {

    init {
        if(id <= 0) throw IllegalArgumentException("Id $id, but expected positive")
        if(quantity <= 0) throw IllegalArgumentException("Quantity $quantity, but expected positive")
        if(metadata < 0) throw IllegalArgumentException("Metadata $metadata, but expected nonnegative")
    }

    var quantity: Int = quantity
        set(value) {
            if(value <= 0) throw IllegalArgumentException("Quantity $value, but expected positive")
            field = value
        }

    var metadata: Int = metadata
        set(value) {
            if(value < 0) throw IllegalArgumentException("Metadata $value, but expected nonnegative")
            field = value
        }

}