2017-11-02 3 views
3

Ich versuche, eine benutzerdefinierte Eigenschaft Setter für LibGDX Sprite zu machen.Kotlin benutzerdefinierte Setter

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

Aber es sagt, dass sSprite vom Typ sein muss, ist es möglich, zu tun, was ich tun werde versuchen?

Antwort

1

Zuerst sollten Sie field anstelle von sprite in Ihrem benutzerdefinierten Getter/Setter verwenden. Andernfalls werden rekursive Aufrufe das Ergebnis sein.

Was Sie versuchen zu tun, funktioniert nicht, wie Ihnen der Compiler sagt. Sie müssen den Setter überladen und fügen Sie es als eine normale Methode zu Ihrer Klasse wie folgt hinzu:

+1

sehr schön, dass Sie den rekursiven Aufruf erwähnen. +1 –

+0

Ich habe gerade über das Feld gelesen. Na gut, danke für die Hilfe. – Aleb1an

+0

@WilliMentzel: Danke, froh, dass es dir gefällt ;-) – s1m0nw1

Verwandte Themen