Peter: Reflection und Objet mit Konstruktor *verzweifel*

Hallo,

Ich will mittels Reflection eine Instanz einer Klasse neu erzeugen , die  Klasse hat einen Konstruktor mit einem Paramter. Ich bin so langsam am verzweifeln. Folgenden Code habe ich :

Class argsClass[] = new Class[]{DataSource.swtTable.myTable.class};
Constructor c = resultType.getConstructor(argsClass);
Objectct[] intArgs = new Object[1];
intArgs[0]=(myTable)instance;
Object o=c.newInstance(intArgs);

resultType stellt den Typ der zu erstellenden Instanz dar. Diese Klasse hat einen Konstruktor der als einzigsten Paramter ein myTable-Objekt bekommt. instance ist genau ein solches myTable - Objekt das übergeben werden soll.
In der ersten 2 Zeilen lege ich ja nur fest welchen Konstruktor ich will, 3 und 4. zeile legen meine Paramter fest, soweit auch ok, aber ich bekomme  jedesmal :
java.lang.IllegalArgumentException
und habe keine ahnungmehr woran das liegen könnte , weil ich defintiv den richten typ für instance habe (schonw egen dem cast) und der Konstruktor auch defintiv nur ienenParamter fordert....

Ich bin für jede noch so klene Hilfe dankbar.

Gruss
Peter

  1. Hallo Peter,

    An dem Beispielcode kann ich keinen Fehler erkennen. Vielleicht gibst Du mal so viel Code an, dass man das ausprobieren kann?

    Grüße

    Daniel

    1. Hallo,

      Also der code ist an sich schon alles,was es zu posten gibt.
      Es gibt da eben noch die Klasse myTable mit dem Konstruktor
      myTable(myTable t) den ich eben aufgerufen haben möchte...

      Gruss
      Peter

  2. Hallo,

    Ich will mittels Reflection eine Instanz einer Klasse neu erzeugen , die  Klasse hat einen Konstruktor mit einem Paramter. Ich bin so langsam am verzweifeln. Folgenden Code habe ich :

    Class argsClass[] = new Class[]{DataSource.swtTable.myTable.class};
    Constructor c = resultType.getConstructor(argsClass);
    Objectct[] intArgs = new Object[1];
    intArgs[0]=(myTable)instance;
    Object o=c.newInstance(intArgs);

    Sieht soweit eigentlich korrekt aus -- bis auf das "Objectct", das ich
    für einen Tippfehler hier im Posting halte.

    Mir fällt auf, daß du die Klasse "myTable" einmal mit vollqualifiziertem
    Klassennamen (also inkl. Package) und einmal ohne Package schreibst.
    Würdest du gleichzeitig eine andere Klasse myTable aus einem anderen
    Package im Klassenkopf importieren, könnte es sein, daß dein Objekt
    in "instance" ein anderes myTable ist, als es oben (vollqualifiziert)
    angegeben ist.

    Mehr fällt mir nicht auf. Vielleicht sieht noch ein anderer Leser
    etwas, das mir nicht aufgefallen ist...

    Du solltest dir übrigens angewöhnen Klassennamen immer mit einem
    großen Anfangsbuchstaben und Packages immer vollständig klein zu
    schreiben. Das ist die übliche Konvention in Java.

    Gruß
    Slyh