auf priv. konstruktor von "aussen" zugreifen?

ruutaiokwu

Top Contributor
hallo zusammen,

gegeben sei folgende methode:

Java:
public static XMLSerializerBase createInstance(final Class<? extends XMLSerializerBase> impl)
    {
        try
        {
            final Constructor<? extends XMLSerializerBase> constr = impl.getDeclaredConstructor(impl);
            
            constr.setAccessible(true);
            
            return constr.newInstance();
            
            // return impl.newInstance();
        }
        catch (final Exception e)
        {
            throw new RuntimeException(e);
        }
    }


alle beispiele im netz beinhalten das hier:

Java:
constr.setAccessible(true);
            
            return constr.newInstance();


...trotzdem geht GAR NIX, zuerst hatte ich getConstructor statt getDeclaredConstructor verwendet, doch funktionieren tut es damit auch nicht...? bekomme immer eine NoSuchMethodException <init>, was in der art...

weiss jmd. weiteres?


EDIT: die klassen "extends XMLSerializerBase" haben grundsätzlich einen priv. kontruktor...

grüsse,
jan
 
Zuletzt bearbeitet:

ruutaiokwu

Top Contributor
impl = instanz von java.lang.Class<WasAuchImmer>

impl.get(Declared)Constructor(impl) != impl.get(Declared)Constructors[0]

wider mal typisch java, alles andere als selbsterklärend...
 
Zuletzt bearbeitet:

faetzminator

Gesperrter Benutzer
Ich weiss nicht wo dein Problem ist, aber in der API ist das sehr wohl erklärt. Es gibt nämlich keine Methode [c]getConstructor()[/c] sondern nur [c]getConstructor(Class...)[/c]: Class (Java Platform SE 6)
Aber da du das im obigen Post auch so verwendet hast ([c]getDeclaredConstructor(impl)[/c]), scheint da ein Problem vorzuliegen.
 
G

Gelöschtes Mitglied 5909

Gast
sieht für mich so aus als würde es keinen default constructor geben
 

ruutaiokwu

Top Contributor
@faetzminator: ja, stimmt, deswegen habe ich mein 2. beitrag dieses threads gerade korrigiert...

@rail: ja, für mich zuerst auch


lösung hier:

Java:
import java.lang.reflect.Constructor;

public abstract class XMLSerializerBase
{
    public abstract String serializeObjectToXML(Object obj);

    public abstract Object deserializeXMLToObject(String xml);

    protected XMLSerializerBase()
    {
        super();
    }

    public static XMLSerializerBase createInstance(final Class<? extends XMLSerializerBase> impl)
    {
        try
        {
            final Constructor<?> constr = impl.getDeclaredConstructors()[0];
            constr.setAccessible(true);

            return (XMLSerializerBase) constr.newInstance();
        }
        catch (final Exception e)
        {
            throw new RuntimeException(e);
        }
    }
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Parameter Konstruktor plus rechnen Allgemeine Java-Themen 6
M Konstruktor einer Methode Allgemeine Java-Themen 35
M Frage zum Konstruktor Allgemeine Java-Themen 2
B Klassen Objekt erzeugen und Konstruktor aufrufen - Welche Lösung ist besser? Allgemeine Java-Themen 2
D Konstruktor - jedes Objekt einzeln erzeugen - alternative? Allgemeine Java-Themen 8
J Konstruktor in JSP beim Kompilieren nicht gefunden Allgemeine Java-Themen 3
J Inner class + Leer-Konstruktor Allgemeine Java-Themen 1
P Threads Objekt im Konstruktor anders wie im Run()-Block Allgemeine Java-Themen 10
H Beim Konstruktor "this" Allgemeine Java-Themen 4
K Variablen Konstruktor, unendlich viele Allgemeine Java-Themen 3
T Konstruktor löst exception aus Allgemeine Java-Themen 7
C Klassen und Konstruktor Allgemeine Java-Themen 2
W Threads NullPointer: Konstruktor "zu langsam"? Allgemeine Java-Themen 3
L Klassen Konstruktor soll Objekt anderer Klasse erzeugen Allgemeine Java-Themen 2
M Klassen Klasse Dynamisch laden und Konstruktor aufrufen Allgemeine Java-Themen 1
DStrohma In abstrakter Klasse Konstruktor von Instanz implementieren Allgemeine Java-Themen 11
C Reflektions, Benutzer soll Konstruktor auswählen und Parameter übergeben können Allgemeine Java-Themen 5
S OOP this-Referenz als Konstruktor-Übergabe Allgemeine Java-Themen 8
ruutaiokwu NullPointerException auf member, die per konstruktor gesetzt wird (multithread-kontext) Allgemeine Java-Themen 2
A Methoden laufen im Konstruktor, außerhalb allerdings nicht Allgemeine Java-Themen 2
E Array im Konstruktor übergeben Allgemeine Java-Themen 3
A Reflection Konstruktor Parameter Supertyp Allgemeine Java-Themen 2
X Dynamisch Konstruktor aufrufen Allgemeine Java-Themen 12
J abstrakte Klassen, Konstanten und Konstruktor Allgemeine Java-Themen 9
E Finale Attribute und Konstruktor Allgemeine Java-Themen 3
S Konstruktor ermitteln Allgemeine Java-Themen 3
B Konstruktor wird nicht aufgerufen Allgemeine Java-Themen 4
T class.newinstance + try/catch-konstruktor Allgemeine Java-Themen 6
S Neue Instanz eines Objekts erzeugen - Konstruktor erhaelt Parameter. Allgemeine Java-Themen 5
B Konstruktor - Vererbungsproblem Allgemeine Java-Themen 2
S konstruktor vererben Allgemeine Java-Themen 5
B Problem mit Methodenaufruf in Konstruktor Allgemeine Java-Themen 6
D [SOLVED] Collection wird nicht richtig per Konstruktor übernommen Allgemeine Java-Themen 8
S Instanz in einer Klasse erstellen, und dem Konstruktor die eigene Klasse mitgeben Allgemeine Java-Themen 4
M Konstruktor / statischer Block Allgemeine Java-Themen 13
Ark Konstruktor per Reflection nicht bekannt Allgemeine Java-Themen 4
J Klasse auf Konstruktor oder Methode testen? Allgemeine Java-Themen 3
Junktyz Konstruktor Allgemeine Java-Themen 9
T Schleife im Konstruktor? Allgemeine Java-Themen 9
conan2 super-super-Konstruktor? Allgemeine Java-Themen 3
P static-Methode aus dem Konstruktor aufrufen Allgemeine Java-Themen 6
F Werte von Member-Variablen erst im Konstruktor setzen? Allgemeine Java-Themen 7
MQue zaehlen im Konstruktor Allgemeine Java-Themen 3
V Initialisierung nur im Konstruktor? Allgemeine Java-Themen 14
J Konstruktor-Aufruf nur aus einem bestimmten Package erlauben Allgemeine Java-Themen 5
T Konstruktor von Hashtable unter Java 5.0! Allgemeine Java-Themen 3
M Feld initialisieren, direkt oder Konstruktor Allgemeine Java-Themen 2
D super-Konstruktor ist nicht super ;) Allgemeine Java-Themen 6
A Objektmethode aus Konstruktor aufrufen? Allgemeine Java-Themen 14
7 Konstruktor Allgemeine Java-Themen 12
M Konstruktor, der Excpetions wirft Allgemeine Java-Themen 2
H Super-Konstruktor Allgemeine Java-Themen 7
A Exception in Konstruktor - trotzdem wird Objekt erzeugt! Allgemeine Java-Themen 3
S Konstruktor vererben Allgemeine Java-Themen 9
thE_29 String Konstruktor - Umwandlungsprobleme Allgemeine Java-Themen 5
J Probleme mit dem Konstruktor Allgemeine Java-Themen 8
G Konstruktor-Aufruf nun mit oder ohne Typ? Allgemeine Java-Themen 9
D Kein public Konstruktor Allgemeine Java-Themen 4
K Exception im Konstruktor / Objekt == null Allgemeine Java-Themen 7
S konstruktor nur innerhalb der klasse aufrufbar Allgemeine Java-Themen 5
S konstruktor im interface Allgemeine Java-Themen 5
M Threads von aussen "pausieren" lassen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben