E
_ebm_
Aktives Mitglied
Thread Starter
- Dabei seit
- 19.01.2008
- Beiträge
- 2.079
- Reaktionspunkte
- 204
Kleine Java/Tomcat-Frage:
In einer Applikation rufe ich eine statische Methode:
mit:
Das funktioniert auch wunderbar
Wenn ich das jetzt in einem Tomcat mache, geht das nicht. Ich erhalte eine NoSuchMethod Exception, weil die VM eine Methode mit der Signatur "Object getNumber(String, Class, Object)" erwartet. Die gibt es ja nicht. Die Signatur nach dem Compilieren ist ja "Number getNumber(String, Class, Number)". Wenn ich also die Typangabe in der statischen Methode auf <T> abändere, geht es auch im Tomcat wieder, weil die Signatur dann wieder passt.
Wieso handhabt die VM das im Tomcat anders als in einer normalen Application? Oder anders: Wieso wird im Tomcat gleich auf Object zurückgeführt und nicht vorher noch auf Number?
Einer der Java-Gurus ne Idee?
In einer Applikation rufe ich eine statische Methode:
Code:
public static <T extends Number> T getNumber(String str, Class<T> clazz, T value) {
// simplified!!
return value;
}
Code:
my.pkg.Helper.getNumber("foo", java.lang.Long.class, 1l );
Wenn ich das jetzt in einem Tomcat mache, geht das nicht. Ich erhalte eine NoSuchMethod Exception, weil die VM eine Methode mit der Signatur "Object getNumber(String, Class, Object)" erwartet. Die gibt es ja nicht. Die Signatur nach dem Compilieren ist ja "Number getNumber(String, Class, Number)". Wenn ich also die Typangabe in der statischen Methode auf <T> abändere, geht es auch im Tomcat wieder, weil die Signatur dann wieder passt.
Wieso handhabt die VM das im Tomcat anders als in einer normalen Application? Oder anders: Wieso wird im Tomcat gleich auf Object zurückgeführt und nicht vorher noch auf Number?
Einer der Java-Gurus ne Idee?