import java.lang.reflect.Method;
import java.util.Arrays;
public class Test
{
public static void main(String s[]) throws ClassNotFoundException
{
Class cls = Class.forName("Test");
System.out.println("Class is "+cls);
Method[] mtds = cls.getMethods();
System.out.println("Methods are "+Arrays.deepToString(mtds)); // not having all methods
}
void reflectionTestMethod()
{
System.out.println("test");
}
}
Output is
Class is class Test
Methods are [public static void
Test.main(java.lang.String[]) throws java.lang.ClassNotFoundException,
public final void java.lang.Object.wait() throws
java.lang.InterruptedException, public final native void
java.lang.Object.wait(long) throws java.lang.InterruptedException,
public final void java.lang.Object.wait(long,int) throws
java.lang.InterruptedException, public boolean
java.lang.Object.equals(java.lang.Object), public java.lang.String
java.lang.Object.toString(), public native int
java.lang.Object.hashCode(), public final native java.lang.Class
java.lang.Object.getClass(), public final native void
java.lang.Object.notify(), public final native void
java.lang.Object.notifyAll()]
Why is reflectionTestMethod() not available in the output ?
getMethods()returns public methods (as it states in its Javadoc)Try
getDeclaredMethods()instead or make the method public.BTW, you can do: