我试图为libGDX的精灵制作自定义属性设置器。
var sprite : Sprite? = null
get() = sprite
set(s : String) { sprite = Sprite(Texture(s)) }
但是它说s
必须是Sprite
类型,是否有可能做我想做的事情?
答案 0 :(得分:2)
首先,您应该在自定义getter / setter中使用field
而不是sprite
。否则将导致递归调用。
编译器告诉您,您尝试做的事情不起作用。您需要重载setter并将其作为常规方法添加到您的类中,如下所示:
setSprite(s : String) { sprite = Sprite(Texture(s)) }