黑马程序员技术交流社区

标题: Method中的方法getDeclaredMethods()与getMethods()区别 [打印本页]

作者: hello_world!    时间: 2012-10-30 10:26
标题: Method中的方法getDeclaredMethods()与getMethods()区别
Method[] methods = clazzProxy.getDeclaredMethods();
打印出的方法是:
public $Proxy0(java.lang.reflect.InvocationHandler)
public final int $Proxy0.hashCode()
public final boolean $Proxy0.equals(java.lang.Object)
public final java.lang.String $Proxy0.toString()
public final java.util.Iterator $Proxy0.iterator()
**********************************************************
Method[] methods = clazzProxy.getMethods();
打印出的方法是:

public $Proxy0(java.lang.reflect.InvocationHandler)
public final int $Proxy0.hashCode()
public final boolean $Proxy0.equals(java.lang.Object)
public final java.lang.String $Proxy0.toString()
public final java.util.Iterator $Proxy0.iterator()
public static boolean java.lang.reflect.Proxy.isProxyClass(java.lang.Class)
public static java.lang.Class java.lang.reflect.Proxy.getProxyClass(java.lang.ClassLoader,java.lang.Class[]) throws java.lang.IllegalArgumentException
public static java.lang.reflect.InvocationHandler java.lang.reflect.Proxy.getInvocationHandler(java.lang.Object) throws java.lang.IllegalArgumentException
public static java.lang.Object java.lang.reflect.Proxy.newProxyInstance(java.lang.ClassLoader,java.lang.Class[],java.lang.reflect.InvocationHandler) throws java.lang.IllegalArgumentException
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()
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 final void java.lang.Object.wait() throws java.lang.InterruptedException


请问这两个方法的具体区别是什么呢?

作者: 张忠豹    时间: 2012-10-30 10:56
getDeclaredMethods:可以获取clazzProxy中所有声明过的方法,包括public,protected,默认,private的。
而getMethods只能获取clazzProxy中的public修饰的方法。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2