java反射

来源:互联网 发布:医院网络咨询话术 编辑:程序博客网 时间:2024/05/22 03:50

1.getMethods和getDeclaredMethods的区别

返回值如下:reflect.Hello
-------------getDeclaredMethods------------
s
h
---------------getMethods----------------
s
say
wait
wait
waite
quals
toString
hashCode
getClass
notify
notifyAll
可以很清晰的看到,getDeclaredMethods会返回此类中的所有方法,不论是public还是private而getMethods则仅仅返回public方法,
但是它还包括其超类中的public方法2.获取Method对象通过getMethod(String methodName,Class... parameterTypes)方法,
getMethods得到通过getDeclaredMethod,getDeclaredMethods得到,其中getMethods和getDeclaredMethods返回的是Method对象数 组
3.method.invoke(Object obj,Object args)第一个参数为所执行方法的类对象,第二个传入的是此方法的参数

public class Say {public void say(){}private void haha(){}}public class Hello extends Say {private void h(){}public void s(){}}


public class Test {public static void main(String[] args) {try {TestDemo();} catch (Exception e) {System.out.println("error:"+e.getMessage());}}private static void TestDemo() throws Exception {Class userDaoClass = Hello.class;System.out.println(userDaoClass.getName());System.out.println("-------------getDeclaredMethods------------");Method[] method = userDaoClass.getDeclaredMethods();for(int i=0;i<method.length;i++){System.out.println(method[i].getName());}Method[] methods = userDaoClass.getMethods();System.out.println("---------------getMethods----------------");for(int i=0;i<methods.length;i++){System.out.println(methods[i].getName());}}}
 
原创粉丝点击