课程名称: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!

随时随地看视频