2017-11-02 4 views
3

私はlibGDXのスプライト用のカスタムプロパティセッターを作ろうとしています。Kotlinカスタムセッター

var sprite : Sprite? = null 
    get() = sprite 
    set(s : String) { sprite = Sprite(Texture(s)) } 

しかし、sがタイプSpriteでなければならないことを言って、それは私がやろうとしている何をすることは可能でしょうか?

答えて

1

まず、カスタムゲッター/セッターの内側にspriteの代わりにfieldを使用する必要があります。そうしないと、再帰呼び出しが結果になります。

あなたがしようとしていることは、コンパイラがあなたに伝えるように、動作しません。あなたはセッターをオーバーロードし、通常の方法としてこのようにクラスに追加する必要があります:

setSprite(s : String) { sprite = Sprite(Texture(s)) } 
+1

再帰呼び出しについて言及してください。 +1 –

+0

私はフィールドについて読んでいました。さて、大丈夫、助けてくれてありがとう。 – Aleb1an

+0

@WilliMentzel:ありがとう、嬉しいあなたがそれを好き;-) – s1m0nw1