reflection api

xyZman

Bekanntes Mitglied
Hi. Habe hier eine Klasse
Java:
class AB {
	int a;
	static int b;
	final public static int c = 12;

Ich möchte jetzt die Klassendefinitionen ausgeben.
Ausgabe soll dann einfach die ganze Klasse sein.
Also output:
Java:
class AB {
	int a;
	static int b;
	final public static int c = 12;
Angefangen habe ich mit dem Klassennamen selbst.
Nun möchte ich mein int i kommen. Dies mache ich doch mit
der Klasse java.lang.Class getType() ?. Ich weis aber nicht so recht wie ich das implementiere..
Gibt immer Fehler.
Java:
public static void main(String[]args){
	druckeKlasse(new AB());
	
}
	
	static void druckeKlasse(Object obj){
		IO.println( obj.getClass()+" {");
		
	}
}



lg
 

xyZman

Bekanntes Mitglied
Da hänge ich schon seit einiger Zeit fest. Bin allerdings noch nicht wesentlich schlauer.
Derartige Beispiele liegen mir vor
Java:
 Class<?> c = Class.forName(args[0]);
	    Field f = c.getField(args[1]);
	    System.out.format("Type: %s%n", f.getType());
 
Zuletzt bearbeitet:

ARadauer

Top Contributor
Java:
Class<?> c = Class.forName(args[0]);
wieso...
die Class hast du ja schon... obj.getClass()....

und was willst du mit den args? du kopierst halt einfach was da steht?

Schau halt mal in die doku..

zb

Java:
AB ab = new AB();
Class clazz = ab.getClass();
Field[] fields = clazz.getDeclaredFields();
for(Field field : fields){
        	System.out.println(Modifier.toString(field.getModifiers())+" "+field.getType()+" "+field.getName());
}
 

bLaSt

Aktives Mitglied
Hier mal eine eine kleine Zusammenfassung für dich, wie man überhaupt eine vernünftige Reflection erstellt. Und wenn du das anständig gemacht hast kannst du den Klassennamen ohne Probleme ausgeben:
Java:
String[] werte = readStringFromFile();
		try {
			// Klasse anhand ihres Namens auswählen
			Class unbekannteKlasse = Class.forName(werte[0]);
			System.out.println("1.Zu instanziierende Klasse: "
					+ unbekannteKlasse);

			// Konstruktor anhand der Parameter bestimmen
			Class[] parameterTypes = { String.class };
			Constructor konstruktor = unbekannteKlasse
					.getConstructor(parameterTypes);
			System.out.println("2.Argumenttypen des Konstruktors: "
					+ unbekannteKlasse.getDeclaredConstructor(parameterTypes));

			// Konstruktor instanziieren
			Object[] initargs = { werte[1] };
			Object instanz = konstruktor.newInstance(initargs);

			// Methode auswählen
			String methodenname = werte[1];
			Class[] parameterTypes2 = { String.class };
			Method methode = unbekannteKlasse.getMethod(methodenname,
					parameterTypes2);
			System.out.println("3.Die Methode heisst " + methode.getName());

			// Methode aufrufen
			Object[] uebergabewerte = { werte[2] };
			methode.invoke(instanz, uebergabewerte);
			System.out.println("4.Values die an die Methode übergeben werden: "
					+ werte[2]);

		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SecurityException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	private static String[] readStringFromFile() {
		String[] rueckgabeWerte = { "uebung11.InterfaceNutzer", "gibWasaus",
				"Bliblub" };
		return rueckgabeWerte;
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Reflection: Suche Feld + in Unterklassen Java Basics - Anfänger-Themen 7
B Reflection ändern von Objekten in Objekten Java Basics - Anfänger-Themen 12
G Vererbung Sicherheitslücke? Reflection sieht members, die nicht sichtbar sein sollten?! Java Basics - Anfänger-Themen 11
S reflection und felder Java Basics - Anfänger-Themen 12
B .class-File mit Reflection auslesen Java Basics - Anfänger-Themen 8
X Parameterübergabe per Reflection Java Basics - Anfänger-Themen 10
U Reflection Benutzung Java Basics - Anfänger-Themen 2
J Reflection Java Basics - Anfänger-Themen 6
B Reflection Java Basics - Anfänger-Themen 8
S Datentypen Reflection Cast anhand eines Strings? Java Basics - Anfänger-Themen 7
R Alle Klassen ermitteln, die Interface implementieren / Reflection Java Basics - Anfänger-Themen 51
lumo java reflection Java Basics - Anfänger-Themen 7
J Reflection Java Basics - Anfänger-Themen 2
J Reflection Java Basics - Anfänger-Themen 3
P Reflection - Class Not Found Exception Java Basics - Anfänger-Themen 3
A Frage zu Reflection Java Basics - Anfänger-Themen 8
A abgeleitete Klassen mit Reflection holen Java Basics - Anfänger-Themen 2
M Reflection Java Basics - Anfänger-Themen 8
W Problem bezüglich reflection Java Basics - Anfänger-Themen 11
S verschiede constructoren über reflection Java Basics - Anfänger-Themen 3
V Reflection API - getter und setter Java Basics - Anfänger-Themen 7
JFeel-x Frage zu reflection Java Basics - Anfänger-Themen 12
J Reflection Basic Java Basics - Anfänger-Themen 26
C Reflection Exceptions behandeln Java Basics - Anfänger-Themen 6
T von Reflection zum Thread? Java Basics - Anfänger-Themen 5
G Vorteile Reflection bezüglich MVC-Pattern Java Basics - Anfänger-Themen 9
G Reflection - Klasse laden aus anderem Verzeichnis Java Basics - Anfänger-Themen 4
L Reflection-fehlermeldung Java Basics - Anfänger-Themen 12
E Klassenaufrufe dynamisch mit Reflection Java Basics - Anfänger-Themen 4
S wer oder was ist reflection? Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben