java中的反射,invoke方法

java中的反射,invoke方法

(2012-01-23 14:57:18)
标签:

杂谈

分类:JavaSE

在施老师的项目中需要用到invoke,就是通过函数名反射相应的函数。一下代码简单地介绍了java反射中invoke方法,如果要具体的,可以参考魔乐核心课程的反射部分内容

package org.curry.tool;
import java.lang.reflect.Method;

public class InvokeMethods {
 public static void main(String[] args) {
  Employee emp = newEmployee();
  Class cl =emp.getClass();//是Class,而不是class
  ///getClass获得emp对象所属的类型的对象,Class就是类的类          
  ///Class是专门用来描述类的类,比如描述某个类有那些字段,          
  // /方法,构造器等等!
  try {
   ///getMethod方法第一个参数指定一个需要调用的方法名称
   ///这里是Employee类的setAge方法,第二个参数是需要调用 
   //方法的参数类型列表,是参数类型!如无参数可以指定null 
   ///该方法返回一个方法对象 
   Method sAge =cl.getMethod("setAge", new Class[] { int.class });//参数必须和方法中一样int和Integer,double和Double被视为不同的类型
   Method gAge =cl.getMethod("getAge", null);
   Method pName= cl.getMethod("printName",
     newClass[] { String.class });
   
   Object[]args1 = { new Integer(25) };
   // 参数列表
   //emp为隐式参数该方法不是静态方法必须指定
   sAge.invoke(emp,args1);
   Integer AGE =(Integer) gAge.invoke(emp, null);
   int age =AGE.intValue();
   System.out.println("TheEmployee Age is: " + age);
   Object[]args3 = { new String("Jack") };
   pName.invoke(emp,args3);
  } catch (Exception e) {
   e.printStackTrace();
  }
  System.exit(0);
 }
}

class Employee {
 

// 定义一个员工类  
 public Employee() {
  age = 0;
  name = null;
 }
 // 将要被调用的方法  
 public void setAge(int a) {
  age = a;
 }
 // 将要被调用的方法  
 public int getAge() {
  return age;
 }
 // 将要被调用的方法
 public void printName(String n) {
  name = n;
  System.out.println("TheEmployee Name is: " + name);
 }
 private int age;
 private String name;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值