Klasse in Runden Klammern bei Objektimplementierung

mrkennedie89

Mitglied
Hallo ich beschäftige mich gerade mit Android Studio. Meine Java Kenntnisse umfassen jedoch bisher nur die Grundlagen.
Im Tutorial bin ich auf folgenden Code gestoßen:

Java:
MainActivity mainActivity = (MainActivity) getActivity();

Ich kann mir anhand des bisherigen Wissens nicht erklären warum MainActivity auf der rechten Seite des Zuweisungsoperators in runden Klammern gesetzt wird.
Kann mir ein etwas erfahrener Programmierer vielleicht sagen, womit ich mich in Java beschäftigen kann,
um diesen Codeblock vollständig verstehen zu können?

Vielen Dank.
 
Das ist ein "Cast" bzw in diesem Fall wohl ein Downcast.
Es ist eine Zusicherung an den Compiler (der zusätzlich noch eine Laufzeitprüfung einbaut), dass getActivity() auf jeden Fall vom Typ (oder Untertyp) von MainActivity ist, weil statisch die Methode getActivity() wohl einen allgemeineren Typ zurückliefert.
 
Das ist ein "Cast" bzw in diesem Fall wohl ein Downcast.
Es ist eine Zusicherung an den Compiler (der zusätzlich noch eine Laufzeitprüfung einbaut), dass getActivity() auf jeden Fall vom Typ (oder Untertyp) von MainActivity ist, weil statisch die Methode getActivity() wohl einen allgemeineren Typ zurückliefert.
Wow das ging schnell. Danke. Ich wusste echt nicht wonach ich suchen soll.
Werd mich mit dem Thema jetzt beschäftigen.
 
Das ist ein TypCast den du in einrn Fragment benutzen kannst um an die Instanz der Activity zukommen.
Denn Fragmente sind einge Klassen.

In einer Activity brauchst du das nicht.
Da ist auch die Methode getActivity()
nicht vorhanden.
 

Neue Themen


Zurück
Oben