`
Jason.Qiao
  • 浏览: 3929 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

阅读更多
import java.lang.reflect.Method;

/**
* Java.lang.reflect.Method invoke方法 实例
*  程序中配置文件中有对实体对象的get,set方法的描述,通过应用invoke()方法调用实体对象的method方法
*  return m_oGetter.invoke(oSrc, null);
*  oSrc为实体对象,Method m_oGetter 这里的m_oGetter是对应于在代理实例(oSrc)上调用的接口方法的 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解释.pdf

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

    详解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学习资料-反射机制深入理解剖析

    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 annotation

    import java.lang.reflect.Method; public class Main { public static void main(String[] args) throws Exception { Class&lt;Concert&gt; clazz = Concert.class; Object object = clazz.newInstance(); Method ...

    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&gt; beanToMap(Object bean) throws Exception { Map, Object&gt; ...

    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