L
looogi
Gast
hallo habe folgende 2 Klassen. Ich möchte mit der Klasse TestR1 die Methoden von R3 aufrufen,
die werden zwar aufgerufen, doch ommt dann eine Fehlermeldung auf der Konsole... wieso?
Fehler lautet:
die werden zwar aufgerufen, doch ommt dann eine Fehlermeldung auf der Konsole... wieso?
Fehler lautet:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at TestR1.main(TestR1.java:17)
Caused by: java.lang.IllegalMonitorStateException: current thread not owner
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
... 5 more
Code:
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class TestR1 {
public static void main(String[] args) {
try {
Class c = Class.forName("R3");
Object o = c.newInstance();
Class clazz = o.getClass();
Method[] methoden = clazz.getMethods();
for (int i = 0; i < methoden.length; i++) {
methoden[i].invoke(o, new Object[0]);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
public class R3 {
public void sagwas(){
System.out.println("hallo von R3");
}
public void nochwas(){
System.out.println("nochmal hallo");
}
}