我正在尝试为 libGDX 的 Sprite 制作一个自定义属性 setter 。

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)) }

关于libgdx - Kotlin 自定义 setter ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47080496/

10-13 08:37