Ahojte. Snazim sa zistit o com je reflexia, no uz prve pokusy mi havaruju na chybach.
Kod je nasledujuci.
Kód:
Scanner scn = new Scanner(System.in);
String trieda;
System.out.print("Zadaj nazov triedy: ");
trieda = scn.nextLine();
try{
Class clas = Class.forName(trieda);
Object invoke = clas.getMethod("execute").invoke(clas.newInstance());
System.out.println(invoke);
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
V rovnakom adresare ako triedu v ktorom je tato metodka, su este triedy Attack a Buff, no ak ktorukolvek z nich zadam ako parameter, tak to napise ze tu triedu nevie najst. Chyba vyzera nasledovne:
Kód:
SEVERE: null
java.lang.ClassNotFoundException: Attack
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at src.Main.main(Main.java:23)
Vedel by mi niekto pomoct a povedat v com je problem?