黑马程序员-java-反射2
来源:互联网 发布:js 字符串分割split 编辑:程序博客网 时间:2024/05/22 07:59
通过反射调用方法实例
import java.lang.reflect.Method;
public class InvokeTester
{
public int add(int param1, int param2)
{
return param1 + param2;
}
public String echo(String message)
{
return "Hello: " + message;
}
public static void main(String[] args) throws Exception
{
// 以前的常规执行手段
InvokeTester tester = new InvokeTester();
System.out.println(tester.add(1, 2));
System.out.println(tester.echo("Tom"));
System.out.println("---------------------------");
// 通过反射的方式
// 第一步,获取Class对象
// 前面用的方法是:Class.forName()方法获取
// 这里用第二种方法,类名.class
Class<?> classType = InvokeTester.class;
// 生成新的对象:用newInstance()方法
Object invokeTester = classType.newInstance();
System.out.println(invokeTester instanceof InvokeTester); // 输出true
// 通过反射调用方法
// 首先需要获得与该方法对应的Method对象
Method addMethod = classType.getMethod("add", new Class[] { int.class,
int.class });
// 第一个参数是方法名,第二个参数是这个方法所需要的参数的Class对象的数组
// 调用目标方法
Object result = addMethod.invoke(invokeTester, new Object[] { 1, 2 });
System.out.println(result); // 此时result是Integer类型
//调用第二个方法
Method echoMethod = classType.getDeclaredMethod("echo", new Class[]{String.class});
Object result2 = echoMethod.invoke(invokeTester, new Object[]{"Tom"});
System.out.println(result2);
}
}
- 黑马程序员-JAVA反射2
- 黑马程序员-java-反射2
- 黑马程序员--java 反射
- 黑马程序员--Java反射
- 黑马程序员-java-反射
- 黑马程序员--java反射
- 黑马程序员-Java反射
- 【黑马程序员】java反射
- 黑马程序员-java反射
- 黑马程序员----Java反射
- 黑马程序员--------java 反射
- 黑马程序员JAVA---反射
- 黑马程序员----java----反射
- “黑马程序员”Java反射
- 黑马程序员--JAVA<反射>
- 黑马程序员--Java反射
- 黑马程序员-java-反射
- 黑马程序员----Java反射
- CSS经典布局之圣杯布局、双飞翼布局
- 扯淡之浅谈bugbash
- 这个网站, 你值得拥有!
- C#中数组、ArrayList和List三者的区别 .
- idea-maven查看jar依赖
- 黑马程序员-java-反射2
- Java--泛型
- Juerry 实现让复选框实现单选
- 黑马程序员-java-多线程2
- json 解析
- C语音数据类型转换
- [LeetCode]Single Number
- elasticsearch的研究与使用(一)
- POJ 1330 Nearest Common Ancestors 树