`
yangxianjiangg
  • 浏览: 61303 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java.lang.reflect.Method invoke方法 实例

阅读更多

程序中配置文件中有对实体对象的get,set方法的描述,通过应用invoke()方法调用实体对象的method方法
   return m_oGetter.invoke(oSrc, null);//oSrc为实体对象,Method m_oGetter 这里的m_oGetter是对应于在代理实例(oSrc)上调用的接口方法的 Method 实例,下面参考示例代码 

 

import java.lang.reflect.Method;
public class InvokeMethods {
  public static void main(String[] args){
   
  Employee emp = new Employee();
  Class cl = emp.getClass();
   ///getClass获得emp对象所属的类型的对象,Class就是类的类          
  ///Class是专门用来描述类的类,比如描述某个类有那些字段,          
  ///方法,构造器等等!
  try{
    
   ///getMethod方法第一个参数指定一个需要调用的方法名称
   ///这里是Employee类的setAge方法,第二个参数是需要调用 
   //方法的参数类型列表,是参数类型!如无参数可以指定null 
   ///该方法返回一个方法对象 
   Method sAge = cl.getMethod("setAge",new Class[] {int.class});
   Method gAge = cl.getMethod("getAge",null);
   Method pName = cl.getMethod("printName",new Class[] {String.class});
   /** *使用invoke调用指定的方法*/
   Object[] args1 = { new Integer(25) };
   //参数列表
   //emp为隐式参数该方法不是静态方法必须指定
   sAge.invoke(emp, args1);
   Integer AGE = (Integer)gAge.invoke(emp, null);
   int age = AGE.intValue();
   System.out.println("The Employee 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("The Employee Name is: "+name);
 }
  private int age;
  private String name;
}

 

分享到:
评论

相关推荐

    Java.lang.reflect 包下常用的类及方法简介

    在Java编程语言中,`java.lang.reflect`包是核心库的一部分,它提供了运行时访问类、接口、字段和方法的能力。这个包对于理解和操作对象的动态特性至关重要,尤其是在实现反射机制时。反射允许我们在程序运行期间...

    java反射(reflect)

    Java反射(Reflect)是Java语言中的一个重要特性,它允许运行时的Java程序访问、操作类、接口、字段和方法的信息,甚至动态调用方法。在Java编程中,反射提供了强大的能力,可以用来实现一些高级功能,如元编程、...

    java的类反射

    3. `java.lang.reflect.Method`:表示类的方法。通过Class对象的`getMethods()`、`getMethod()`和`getDeclaredMethods()`可以获取类的方法信息。Method对象提供了调用方法的能力,如`invoke()`方法可以执行指定对象...

    【Java基础笔记】反射.docx

    在Java中,反射主要涉及到`java.lang.Class`、`java.lang.reflect.Method`、`java.lang.reflect.Field`和`java.lang.reflect.Constructor`等类。下面将详细介绍这些知识点。 1. **反射的概述** 反射机制使得Java...

    java使用动态代理来实现AOP(日志记录)的实例代码共6

    import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class LogInvocationHandler implements InvocationHandler { private Object target; // 目标对象 public LogInvocationHandler...

    java反射机制[参照].pdf

    接着,`java.lang.reflect.Method`类代表类的方法,提供了获取方法名、返回类型、参数类型、访问修饰符等功能,并且可以通过`invoke()`方法在运行时动态调用对象的方法。这在处理未知方法名或参数列表时特别有用。 ...

    Java EE:Reflect 反射技术.docx

    - `java.lang.reflect.Method`:表示类的方法,提供获取方法信息和调用方法的功能。 - `java.lang.reflect.Field`:表示类的成员变量,用于获取和设置字段值。 - `java.lang.reflect.Constructor`:表示类的构造函数...

    Java语言的动态属性总结[参考].pdf

    3. **Java.lang.reflect.Method**: 代表类的方法信息,包括方法名、返回类型和参数列表。通过`Method`对象,我们可以调用一个类的静态或实例方法。 4. **Java.lang.reflect.Field**: 描述类的字段,包括字段的类型...

    Java反射机制的工作原理详解.docx

    在Java中,反射机制主要通过`java.lang.Class`、`java.lang.reflect.Field`、`java.lang.reflect.Method`和`java.lang.reflect.Constructor`等类来实现。 **一、反射机制的主要功能** 1. **运行时判断对象所属的类...

    详解Java中Method的Invoke方法

    import java.lang.reflect.Method; public class TestClass { public static void main(String[] args) throws Exception { Method method = A.class.getMethod("foo", String.class); method.invoke(new A(), ...

    java反射机制详解及Method.invoke解释.pdf

    在 Java 中,反射机制主要通过 java.lang.reflect 包中的类和接口来实现。这些类和接口提供了获取类、对象、方法、变量等信息的方法,并且可以在运行时动态地调用对象的方法、获取对象的变量等。 在 Java 反射机制...

    java学习资料-反射机制深入理解剖析

    4. `java.lang.reflect.Method`: 代表类的方法,用于在运行时调用对象的方法。 5. `java.lang.reflect.Modifier`: 提供了关于类、接口、构造器和方法修饰符的静态方法,如`isPublic()`, `isPrivate()`等。 反射机制...

    java实例

    在Java中,`java.lang.reflect.Method`类提供了获取和调用对象方法的功能。通过`Class.getMethod()`或`Class.getDeclaredMethod()`方法,我们可以获取到类的方法信息,并使用`Method.invoke()`来执行这些方法。 2. ...

    java 反射与动态代理

    这是通过`java.lang.Class`类和相关类如`java.lang.reflect.Field`、`java.lang.reflect.Method`以及`java.lang.reflect.Constructor`来实现的。 1. **获取类信息**:通过`Class.forName()`方法,我们可以根据类名...

    java反射机制

    2. `java.lang.reflect.Method`:表示类的方法。Method对象提供了执行方法的能力,如`invoke(Object obj, args...)`可以调用指定对象上的方法。 3. `java.lang.reflect.Field`:表示类的字段。Field对象可以用于...

    java bean和map之间的互转

    import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; public class BeanToMapConverter { public static Map, Object> beanToMap(Object bean) throws Exception { Map, Object> ...

    JAVA 反射详解PPT

    反射机制的核心类主要包括`java.lang.Class`,`java.lang.reflect.Method`,`java.lang.reflect.Field`和`java.lang.reflect.Constructor`。这些类提供了访问和操作类、方法、字段和构造器的API。例如,`Class`类...

Global site tag (gtag.js) - Google Analytics