Man beachte die im Deutschen korrekte Schreibweise des Wortes „Reflexion“ mit „x“ (nicht mit „kt“)!
Die Standardpakete von Java erlauben es einem Programm, zur Laufzeit auf Namen und Eigenschaften des Programmes selber zuzugreifen. So kann beispielsweise eine Methode aufgerufen werden, deren Name zur Laufzeit als Text bekannt ist. Es folgen Beispiele zur Anwendung dieser Möglichkeiten.
Feldzugriffe
Zugriff auf ein nicht-statisches Feld
Das folgende Programmbeispiel zeigt, wie ein durch einen Text "field" gegebenes Feld eines Objekts mit "setInt" auf einen Wert gesetzt werden kann.
SetField.java
class Example { public int field; }
public final class Main { public static void main( final java.lang.String[] args ) throws java.lang.ClassNotFoundException, // 0 java.lang.NoSuchFieldException, // 1 java.lang.IllegalAccessException // 2 { Example instance = new Example(); final java.lang.Class example = java.lang.Class.forName( "Example" ); // 0 final java.lang.reflect.Field field = example.getField( "field" ); // 1 field.setInt( instance, 2423 ); // 2 java.lang.System.out.println( instance.field ); }}
System.Out
2423
Methodenaufrufe
Statische Methode mit Parametern
Da Methodennamen überladen sein können, muß der Parametertyp zur Identifizierung der Methode angegeben werden. Während "Integer.class" für die Klasse "Integer" stünde, wird "Integer.TYPE" oder »int.class« zur Angabe des Datentyps "int" verwendet.
CallMethod.java
final class Example { public static int method( int x, int y ){ return x + y; } public static double method( double x, double y ) { return x + y; }} public final class CallMethod { public static void main( final java.lang.String s[] ) { try { Class example = Class.forName( "Example" ); Class[] parameterTypes = new Class[]{ int.class, int.class }; java.lang.reflect.Method method = example.getMethod( "method", parameterTypes ); Object[] arguments = new Object[]{ new Integer( 5 ), new Integer( 9 )}; Object instance = null; Integer result =( Integer )method.invoke( instance, arguments ); java.lang.System.out.print( result.intValue() ); } catch( Exception e ){}}}
System.Out
14
Nicht-statische Methode ohne Parameter
CallMethod1.java
final class Example { public java.lang.String method1(){ return "method1"; } public java.lang.String method2(){ return "method2"; }} public final class CallMethod1 { public static void main( final java.lang.String[] args ) { try { Example example = new Example(); @SuppressWarnings( "unchecked" ) java.lang.Class<Example> exampleClass = ( java.lang.Class<Example> )java.lang.Class.forName( "Example" ); java.lang.Class[] parameterType = null; java.lang.reflect.Method method = exampleClass.getMethod( "method1", parameterType ); java.lang.Object[] argument = null; java.lang.Object instance = example; java.lang.String result = ( java.lang.String )method.invoke( instance, argument ); java.lang.System.out.println( result ); } catch( java.lang.Exception exception ) { throw new java.lang.RuntimeException( exception ); }}}
System.Out
method1
Aufrufbares mit einer variablen Anzahl von Parameter
Der Typ des entsprechenden Parameters ist eine Reihung von Objekten mit dem in der Parameterdeklaration angegebenen Typ. Ein Konstruktor mit dem einzigen Parameter »java.lang.Object ... args« hat als Parametertyp, denselben wie bei »java.lang.Object[] args«. Allerdings erlaubt es die Operation »isVarArgs()« des Reflektion-Objekts, welches das Aufrufbare darstellt, zwischen den beiden Fällen zu unterscheiden.
Primitive Klassen
public final class Main
{ public static void main( final java.lang.String[] args ) throws java.lang.Exception
public final class Main { public static void main( final java.lang.String[] args ) throws java.lang.Throwable { if( null == java.lang.Thread.class.getMethod ( "dumpStack", ( java.lang.Class<?>[] )null ). invoke( null,( java.lang.Object[])null )){} }}
Seiteninformationen und Impressum | Mitteilungsformular | "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram. | Eine Verbindung zur Stefan-Ram-Startseite befindet
sich oben auf dieser Seite hinter dem Text "Stefan Ram".) |
Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten.
Diese Seite ist eine Veröffentlichung von Stefan Ram.
Schlüsselwörter zu dieser Seite/relevant keywords describing this page:
Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram720529 stefan_ram:720529
Java Reflektionen Java reflect Java reflection Java reflections Java
java reflection method invoke example;
source, source code,sourcecode,
Programmier sprache java,
Java Programm Java Programmiersprache Java Sprache Java Programmierung
Programmieren in Java,
Die Programmiersprache Java
Javapgrammierung,
Java-Programmierung,
Java2, Java1.2, Java1.3, Java1.4, Java1.5,
Java 2, Java 1.2, Java 1.3, Java 1.4, Java 1.5, Java 1.6, Java 1.7, Java 1.8, Java 8, Java 1.9, Java 9, Java 1.10, Java 10, Tiger, Dolphin,
objektorientierte Programmierung,
Java sun,
,
Softwareentwicklung, Software-Entwicklung, Software Entwicklung,
Softwareprogrammierung, Software-Programmierung, Software Programmierung,
Softwareherstellung, Software-Herstellung, Software Herstellung,
Softwareerstellung, Software-Erstellung, Software Erstellung,
Softwareengineering, Software-Engineering, Software Engineering,
Softwareenginering, Software-Enginering, Software Enginering,
Softwaremethodik, Software-Methodik, Software Methodik,
Programmiermethodik, Programmier-Methodik, Programmier Methodik,
Softwaredidaktik, Software-Didaktik, Software Didaktik,
Methodik des Programmierens,
Didaktik des Programmierens,
Fachdidaktik des Programmierens, Fach-Didaktik des Programmierens,
Programmieren, Programmierung,
Computer Science, Informatik,
Informatik, Informationspädagogik, Informationspaedagogik,
Programmierer, programmieren, Quellcode, Quelltext, Quelle, Quellen,
Informatiker, Fachinformatiker, Entwickler, mit Stil, mit Stiel, mit Still,
,
Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz,
lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung,
Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training,
WBT,
Net Based Training,
NBT,
computer based training,
CBT,
virtual learning environment,
virtual university,
für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie,
Onlineacademie,
Onlineakademie,
Wissen,
Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat,
Referate,
Hausaufgabe,
Hausaufgaben, Tip,
Tipp.
Tipps und Tricks,
Tips und Tricks, Methode,
Methoden,
Methodik, Funktion,
Funktionsweise,
Aufbau,
Prinzip,
Grundlage,
Grundlagen, Internetschulung,
Unterlage,
Unterlagen, Struktur,
Frage,
Fragen,
Antwort,
Antworten,
Schulunterricht,
zum erlernen,
was ist das?,
wie?,
lerne,
Onlineausbildung,
Onlinelehrgang,
Onlinekurs,
Onlinebuch,
Webbuch,
Academy,
Fachhochschule,
FH,
TFH,
Hochschule,
Universität,
Universitaet,
Uni,
Schule,
Berufsschule,
Gymnasium,
Erste Schritte mit,
Dozent,
Dozenten,
Zusammenfassung,
Übersicht,
Term,
Fachwort,
Fachbegriff,
Fachbegriffe,
Grundbegriff,
Grundbegriffe,
Lektion,
Lektionen,
Bedienungsanleitung,
Bedienungsanleitungen,
Spezialist,
Spezialisten,
Coaching,
Coach,
Fachbuch,
technologie,
Unterschied zwischen,
Unterschiede zwischen,
lehren,
unterrichten,
für das Studium,
für Studenten,
für Studentinnen,
für Studierende,
für Schüler,
für Schülerinnen,
Wie kann ich,
Wie kann man,
Hilfe,
selber,
erstellen,
Erstellung,
Beginner,
Online-Seminar,
Online-Kurs,
Online-Schulung,
ich,
gebrauchsanweisung,
gebrauchsanleitung,
Bedienungsanweisung,
Einweisung,
Kurzinfo,
Internet-Kurs,
Internet-Kurse,
Online-Training,
Intensiv,
Intensivkurs,
Vortragsreihe,
Präsentation,
Grundzüge,
Mitschrift,
Mitschriften,
Verständnis,
verstehen,
anwenden,
Hintergrundwissen,
Hintergrund,
Hintergründe,
content,
Funktionsprinzip,
Schritt für Schritt;
E-Learning;
elearning;
online learning;
Fernlehre,
Fernlehrgang,
Fernlehrgänge,
Referent,
Referenten,
Fernkurs,
Fernkurse,
Fernstudium,
Fernschule,
Fernuniversität,
Fernlehrer,
Denken,
Qualifizierungsmaßnahme,
Qualifizierung,
Qualifizierungen,
Volkshochschulkurs,
Volkshochschulkurse,
Internet-Learning-Plattform,
Online-Learning-Plattform,
E-Learning-Plattform,
Internetlearning-Plattform,
Onlinelearning-Plattform,
Elearning-Plattform,
jetzt,
Kochbuch,
einfach erklärt,
Kenntnis,
Kenntniss,
Kenntnisse,
deutsche Hilfe,
lernen und verstehen;
blended learning;
courseware,
Profi,
Profis,
professionell,
professionelle,
professionelles,
profesionell,
profesionelle,
profesionelles,
professionel,
gekonnt,
für Könner,
Grundkurs,
Leistungskurs,
Aufbaukurs,
Lehrtext,
Lehrtexte,
Fachtext,
Fachtexte,
Ausarbeitung,
distance learning,
Online Seminar,
distance education,
Online Tutorium,
Online Tutorien,
technology-based learning,
Computer based learning,
CBL,
Internet Based learning,
IBL,
Web based learning,
WBL,
online-learning,
OL,
online-training,
OT,
CAI,
Computer Assisted Instruction,
CUU,
Computerunterstützter Unterricht,
Computer-unterstützter Unterricht,
Know how,
Grundkenntnis,
Grundkenntnisse,
Kompetenz,
Schulungsunterlagen,
Insiderwissen,
Rat,
Lehrerinnen und Lehrer,
ABC,
Überblick,
Arbeitsblatt,
Sekundarstufe,
Oberstufe,
Material,
Materialien,
Unterrichtsentwurf,
Unterrichtsentwürfe,
Lerntip,
Lerntips,
Lerntipp,
Lerntipps,
ebook,
schnell lernen,
Lerner,
Lernender,
Lernende
Erwachsenenbildung,
Frage und Antwort,
Selbststudium,
Selbstudium,
Umschulung,
,
kostenlos, kostenlose, kostenloses,
kosten los, kosten lose, kosten loses,
gratis,
free, frei, freie, freies,
privat, private, privates, homepage, home-page, home page,
website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite,
Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel,
online, on-line, on line,
download downloaden, down load, or,
deutsch, deutsche, deutsches, deutscher,
Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges,
german, germany, and,
uebersicht, Uerbersicht, uebersichten, Uebersichten,
Übersicht, übersicht, Übersichten, übersichten,
Uebersicht, uebersicht, Uebersichten, uebersichten,
Info, Infos zu, Information über, ueber, Informationen über,
Auskunft, Auskünfte, Auskuenfte,
Dienst, PbclevtugFgrsnaEnz,
Angebot, Angebote, Anbieter,
server, für, fuer, in, an, keyword, keywords, key word, keywords,
internet, internets, net, network, net work, networks, net works,
web, www, world wide web,
Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar,
computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon,
computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon,
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
was ist ein, was ist das, was sind, definiere, definition, define,
Inhalt, html, xhtml, free im netz, PDF
Text, digital, digitale, binär, binäre, elektronisch, elektronische,
fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines,
Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen;
,
Stefan Ram, Berlin, and, or, near, uni, online,
slrprd, slrprdqxx, slrprddoc, slrprd720529, slrprddef720529, PbclevtugFgrsnaEnz
Erklärung, Beschreibung, Info, Information, Hinweis,
Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten.
Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/java_reflection_de