this-Aliasse
Verwendung eines this-Aliases
Ein this-Alias ist ein Name für das Objekt »this«. Der Typ eines this-Alias als Kontext (Ziel) in einem Aufruf soll immer der höchste Typ sein, der den folgenden einfachen Aufruf noch unterstützt, so daß der Leser dem Quelltext entnehmen kann, welcher Typ dies ist. Auch der Typ eines this-Alias als Argument in einem Aufruf soll immer der höchste Typ sein, der an dieser Stelle noch möglich ist, so daß der Leser dem Quelltext entnehmen kann, welcher Typ dies ist.
Solche this-Aliasse sind nicht allgemein üblich. An Stelle eines this-Alias kann weiterhin auch »MainActivity.this« geschrieben werden.
In dem folgenden Programm verdeutlicht die Wahl des Bezeichners »activity« in der letzten Anweisung, daß an der Stelle, an welcher »Activity« steht, ein android.app.Activity-Ausdruck erwartet wird und ein Ausdruck eines Obertyps von »android.app.Activity« nicht möglich ist.
MainActivity.java
package com.example;
public class MainActivity extends android.app.Activity
{ final android.app.Activity activity = MainActivity.this;
@java.lang.Override public void onCreate( final android.os.Bundle bundle )
{ super.onCreate( bundle );MainActivity.this.activity.requestWindowFeature
( android.view.Window.FEATURE_NO_TITLE ); }}
Das entsprechende Programm ohne this-Alias:
MainActivity.java
package com.example;
public class MainActivity extends android.app.Activity
{@java.lang.Override public void onCreate( final android.os.Bundle bundle )
{ super.onCreate( bundle );MainActivity.this.requestWindowFeature( android.view.Window.FEATURE_NO_TITLE ); }}