Reflection und Klassenkonstruktotren

Status
Nicht offen für weitere Antworten.

Javahnsinn

Aktives Mitglied
???:L Hallo,
ich stehe vor folgendem Problem: Mit
Code:
Constructor[] constr =  Class.forName("MyClass"). getDeclaredConstructors();
kann ich mir zwar ein Array mit Contructor-objekten besorgen und diese auswerten - da sind aber nur alle Objektkonstruktoren drin, die wie folgt aufgerufen werden können:
Code:
MyClass myObject;
myObject = new MyClass(param); //oder alternativ:
myObject = Class.forName("MyClass").newInstance();
Was in dem Constructor[] - Array fehlt, ist der anonyme Klassenkonstruktor à la
Code:
static { myInitMehod(); } 
// Und so wird der vewendet:
Class.forName("MyClass");
// ruft bereits diesen statischen Klassenkonstruktor auf,
// ohne weiteren Gebrauch von MyClass, etwa durch
// Methodenaufruf, zu machen, à la
MyClass.methodCall()
Hat jemand 'ne Idee, wie man mittels Reflection rausfinden kann, ob eine Klase so einen statischen Klassenkonstruktor hat? Die APIdocs zu Class und ClassLoader bringen mich hier auch nicht weiter. Constructor implementiert zwar Member und damit die Methoden getModifiers() (zum Prüfen auf static-Modifier), aber in dem mit clazz.getDeclaredConstructors() erzeugten array ist der static {...} wie gesagt nicht enthalten...

THX in advance,
Gruß, Jürgen
 
Hi!

Soweit ich weiß wird so ein static block nicht als konstruktor gehandhabt.
in diesem block werden doch dann sachen definiert wenn du das erste mal
auf diese klasse zugreifst, z.B. auf eine static-methose. oder irre ich mich?

Mfg
 
ich glaube der wird schon initalisiert, wenn die Klasse geladen wird.

aber es stimmt schon, der static Block wird meines wissens nciht als konstruktor von java angesehen (ist eigentlich logisch -> Konstruktor erzeugt Instanzen !). Und somit nicht zu ermitteln....
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben