课程名称:java反射的基本操作
课程章节:第五
主讲老师:Cedar
课程内容:
//java获取方法 public class MethodDemo1 { public static void main(String[] args) { /** *获取print(int int)方法 1:获取一个方法就是获取类的信息 * 首先要获取类信息的类类型 * */ A a1 = new A(); Class c = a1.getClass(); //2:获取方法,名称和参数列表来决定 try { //方法可能不存在,所以要抛出异常 Method m = c.getDeclaredMethod("print", new Class[]{int.class, int.class}); //方法的反射操作:用m对象来调用方法,等同于a1.print() //方法如果没有返回值,返回null,如果有返回返回值 // Object o = m.invoke(a1, new Object[]{10, 20}); Object o = m.invoke(a1,10,20); System.out.println("================="); //获取方法对象print(String,String) Method m1 = c.getMethod("print", String.class, String.class); //用方法进行反射操作 o = m1.invoke(a1,"hello","World"); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } // c.getMethod(); } } class A{ public void print(int a, int b){ System.out.println(a + b); } public void print(String s , String ss){ System.out.println(s.toUpperCase() + "," + ss.toUpperCase()); } }
课程收获:
通过反射获取指定对象中的所有public或者声明方法,都是可以做到的,这些都是之前没有触及或者说没有想到过的,所以说,还是要加油学习,学的越多,了解的越多!!
加油加油,fighting!