Ich habe ein Problem mit Reflection, arbeite mit so etwas übrigens zum ersten Mal (daher vermutlich auch die Probleme).
Folgender Code (gekürzt) führt zum unten aufgezeigten Fehler:
Wenn ich nun das Programm starte, sagt mir die VM, sie würde den Konstruktor nicht kennen, obwohl mir meine Augen sagen, dass ich exakt einen solchen angelegt habe. ???:L
Kann mir bitte jemand weiterhelfen?!
Ark
Folgender Code (gekürzt) führt zum unten aufgezeigten Fehler:
Code:
package main;
import core.*;
public final class Main{
public static final void main(String[] args) throws Exception{
Type x=Type.createType("Integer",null,1);
}
}
Code:
package core;
public abstract class Type{
public static final Type createType(String mainType,String details,int database) throws UnknownTypeException{
try{
return TypeInformation.TYPE_MAP.get(mainType).clazz.
getConstructor(String.class,int.class).newInstance(details,database);
}
catch(Exception e){
throw new UnknownTypeException(mainType,e);
}
}
}
Code:
package core;
public final class TypeInteger extends Type{
protected TypeInteger(@SuppressWarnings("unused") String details,int database)
throws BadTypeDetailsException{
super(null,database);
}
}
Wenn ich nun das Programm starte, sagt mir die VM, sie würde den Konstruktor nicht kennen, obwohl mir meine Augen sagen, dass ich exakt einen solchen angelegt habe. ???:L
Code:
Exception in thread "main" core.exception.UnknownTypeException: unknown type: Integer
at core.Type.createType(Type.java:70)
at main.Main.main(Main.java:16)
Caused by: java.lang.NoSuchMethodException: core.TypeInteger.<init>(java.lang.String, int)
at java.lang.Class.getConstructor0(Class.java:2706)
at java.lang.Class.getConstructor(Class.java:1657)
at core.Type.createType(Type.java:64)
... 1 more
Ark