方法的反射
来源:互联网 发布:淘宝快递合作价格 编辑:程序博客网 时间:2024/06/05 19:28
package ss;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* 方法的反射
* @author Administrator
*
*/
public class MethodInvoke {
public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
A a = new A();
//获取A类的类类型
Class c = a.getClass();
//
try {
//可以是个数组,也可以直接是多个参数
//获取到方法对象,用方法进行反射操作
Method m = c.getMethod("print", new Class[]{int.class,int.class});
// 一般我们是这样来调用到print方法;
// a.print(1, 2);
//这里的a对象操作print方法对象
//反过来换成m方法对象("print")操作a这个对象
//如果没有返回值返回Null,有返回值返回具体的返回值
// Object o = m.invoke(a, 2,2);
Object o = m.invoke(a, new Object[]{2,2});
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
}
Method m1 = c.getMethod("print", String.class,String.class);
String s = (String) m1.invoke(a, "hello","word");
}
}
class A{
public void print(int a,int b){
System.out.println(a+b);
}
public void print(String a,String b){
System.out.println(a.toUpperCase()+b.toLowerCase());
}
}
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* 方法的反射
* @author Administrator
*
*/
public class MethodInvoke {
public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
A a = new A();
//获取A类的类类型
Class c = a.getClass();
//
try {
//可以是个数组,也可以直接是多个参数
//获取到方法对象,用方法进行反射操作
Method m = c.getMethod("print", new Class[]{int.class,int.class});
// 一般我们是这样来调用到print方法;
// a.print(1, 2);
//这里的a对象操作print方法对象
//反过来换成m方法对象("print")操作a这个对象
//如果没有返回值返回Null,有返回值返回具体的返回值
// Object o = m.invoke(a, 2,2);
Object o = m.invoke(a, new Object[]{2,2});
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
}
Method m1 = c.getMethod("print", String.class,String.class);
String s = (String) m1.invoke(a, "hello","word");
}
}
class A{
public void print(int a,int b){
System.out.println(a+b);
}
public void print(String a,String b){
System.out.println(a.toUpperCase()+b.toLowerCase());
}
}
阅读全文
0 0
- 反射方法的使用
- 反射方法的使用
- 反射的调用方法
- 成员方法的反射
- 成员方法的反射
- 反射 类的方法
- main方法的反射
- 两个方法的反射
- 方法的反射
- 成员方法的反射
- 方法的反射类
- 方法的反射
- 反射--> 构造方法Constructor类的反射
- 反射 --- 成员方法Method类的反射
- Java反射-------构造方法的反射应用
- 反射(构造方法Constructor的反射)
- java反射(3)--反射的调用方法
- iOS反射---2.类方法的反射
- Vue2.0---将页面中表格数据导出excel (详细)
- springmvc 学习笔记和配置
- 条款03:尽可能使用const
- C++研发-找工作知识点
- 歌曲音乐爬虫编写
- 方法的反射
- SpringBoot修改配置文件默认位置
- Java多态
- JSP内置对象(下)案例
- 浅谈关于斜率优化中为什么能转换为横截式
- 九九乘法表(java算法)
- 选用英文字体输入中文自动选用中文字体相关
- MySQL的坑 Can't find file: './mysql/plugin.frm' 问题
- C语言获取本地所有网卡的ip地址及MAC信息