Question

I have created my own custom class loader for loading a class to JVM. i can access the non static members using following code

MyLoader c=new MyLoader();
Class cls=c.loadClass("Hello");
Object obj=cls.newInstance()
cls.getMethod("show").invoke(obj);

But i don't know the procedure for accessing a static memebrs of a loaded class. Kindly provide a solution for this problem.

Était-ce utile?

La solution 2

// String.class here is the parameter type, that might not be the case with you
Method method = clazz.getMethod("methodName", String.class);
Object o = method.invoke(null, "whatever");

In case the method is private use getDeclaredMethod() instead of getMethod(). And call setAccessible(true) on the method object.

for static methods we can use null as instance of class

Autres conseils

If you have static class members, you can access them just exactly calling from Class Class.myStaticMemeber. Static members also are called Class member, as you can call them directly from the class. Of course you can call them using the instance too, such as cls.myStaticMember, but you should remember that changing value of static member in one place will make this change to all places where you have called that static member.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top