If you have an enum that you are accessing via reflection how would you pass it’s value into method.invoke call.
Would it be something like (shown as a static method for simplicity)
Class enumClazz = Class.forName("mypkg.MyEnum",true,MyClassLoader);
Class myReflectedClazz = Class.forName("mypkg.MyClass",true,MyClassLoader);
Field f = enumClazz.getField("MyEnumValue");
Method m = myReflectedClazz.getMethod("myMethod",enumClazz);
m.invoke(null,f.get(null));
You should probably do:
You will get unchecked warnings as you are using raw types but this will compile and run.
Using reflection, you would need to pass an instance to access a
Field– however in the case of static methods, you can pass innulltoField‘sgetmethod as follows:Also – is
myMethodastaticmethod as you are calling this with no instance as well?