Kotlin定制二传手
我正在试图为libGDX的精灵做一个自定义的属性设置器。
var sprite : Sprite? = null get() = sprite set(s : String) { sprite = Sprite(Texture(s)) }
但是这是说s
必须是Sprite
类型,可以做我想做的事情吗?
首先你应该在自定义的getter / setter中使用field
而不是sprite
。 否则,递归调用将是结果。
正如编译器告诉你的那样,你正在做的事情是行不通的。 你需要重载setter,并把它作为一个普通的方法添加到你的类中,如下所示:
setSprite(s : String) { sprite = Sprite(Texture(s)) }