Ich habe Code wie folgt innerhalb einer Methode:letzte Variable kann nicht initialisiert
final TouchableSpan touchableSpan = new TouchableSpan() {
@Override
public void onClick(View widget) {
this.setPressed(true);
String extravar = touchableSpan.getMyVar();
}
Auf dieser Linie String extravar = touchableSpan.getMyVar();
ich eine Warnung erhalten, dass variable touchableSpan
möglicherweise nicht initialisiert worden sind. Warum gibt es?
Diese Warnung erschien, als ich final
Modifizierer hinzufügte. Bevor ich variable is access from inner class, needs to be declared final
hatte.
Überlegen Sie, ob 'TouchableSpan' einen Konstruktor' TouchableSpan() {this.onClick (null);} 'oder ähnliches hat. – immibis
Das hat definitiv einen "schlechten Geruch". Wenn Ihre Methode 'onClick()' wirklich auf ein Element ** außerhalb der Klasse 'TouchableSpan' zugreifen muss, dann sollten Sie dieses "äußere Element" beispielsweise über einen Konstruktor bereitstellen. Ihr Code koppelt den Teil, der ein neues TouchableSpan-Objekt erzeugt, extrem mit dem Code dieser Klasse. Tu das nicht! – GhostCat
@ Jägermeister, ja, ich werde 'this.getMyVar() 'als' @ Tagir' vorschlagen. –