`
黑暗天使
  • 浏览: 94972 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java getMethod与invoke

    博客分类:
  • java
 
阅读更多

这样写(假设方法的参数是String[],如main(String[] args)): 
Class yourClass = Class.forName("YourClass");//假设你要动态加载的类为YourClass 

Class[] parameterTypes = new Class[1];//这里你要调用的方法只有一个参数 

parameterTypes[0] = String[].class;//这个参数的类型是String型的/////应该是String[] 

Method method = yourClass.getMethod("main", parameterTypes);//这里假设你的类为YourClass,而要调用的方法是main 

Object[] args = new Object[1];//假设你要传入两个参数////应该是一个 
String[] argments = new String[2];//假设你要传入两个参数 
argments[0] = "OK"; 
argments[1] = "NO"; 
args[0] = argments; 

method.invoke(yourClass.newInstance(), args);//调用方法

 

=====================================================

Employee是一个类,getName和raiseSalary是该类中的方法,现在通过Class类的getMethod方法获得获得这两个方法的方法指针,调用如下

Method m1=Employee.class.getMethod("getName");
Method m2=Employee.class.getMethod("raiseSalary",double.class);
这里的class是一个字段,表示这个类对应的Class类的对象,再调用其中的getMethod()返回的是类中公共的成员方法,利用的是反射机制


 

分享到:
评论
1 楼 cuifuq7 2014-03-27  
[img][/img]
[size=      x-small][/size]

相关推荐

    Java反射方法调用

    首先,要调用无参方法,我们可以使用`Class`对象的`getMethod()`方法获取到方法的`Method`实例,然后通过`invoke()`方法执行该方法。例如: ```java Class<?> clazz = Class.forName("YourClassName"); Object ...

    java反射机制及Method.invoke解释

    Java 反射机制及 Method.invoke 解释 Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的...

    详解Java中Method的Invoke方法

    Java 中 Method 的 Invoke 方法详解 Java 中的 Method 对象提供了 invoke 方法,这个方法可以动态地调用 Java 方法。下面详细介绍了 invoke 方法的实现机制。 首先,在调用 invoke 方法之前,需要检查 ...

    Java方法反射调用demo

    在Java中,我们可以通过`Class`对象的`getMethod`方法获取到指定的公共方法,然后通过`invoke`方法调用它。例如: ```java Method method = MyClass.class.getMethod("myMethodWithoutArgs"); method.invoke...

    Invoke反射

    在这个例子中,`GetMethod`用于获取`TestClass`的`PrintMessage`方法,然后`Invoke`方法被用来在创建的实例上执行这个方法,传入参数"Hello, World!"。 反射和Invoke的应用场景广泛,包括但不限于: 1. **插件系统*...

    GetProperty_java(cusTag).txt

    根据提供的文件信息,我们可以分析出该Java类是一个与JSP(JavaServer Pages)相关的自定义标签处理类。接下来,我们将详细解析此文件的关键知识点。 ### 1. 类的基本信息 - **包名**:`com.lin.tag` - **类名**:...

    java中list排序

    我们可以使用 getMethod 和 invoke 方法来动态地取得方法,然后使用 compareTo 方法来比较对象的大小。 在上面的代码中,我们定义了一个 SortList 类,其中包含了一个 Sort 方法。这个方法可以对 List 中的对象进行...

    Java中如何使用字符串来实例化类以及调用类

    - 在调用`invoke()`方法时,必须确保参数类型与方法签名匹配,否则会抛出`IllegalArgumentException`。 - 对于基本类型的参数,如`int`,在调用`getMethod()`时应使用`Integer.TYPE`而不是`Integer.class`,因为`...

    java 反射得到某个方法

    通过`Class.forName()`获取Class对象,再利用`getMethod()`获取方法,最后使用`invoke()`执行方法。在实际开发中,理解并谨慎使用反射,能够帮助我们编写出更加灵活和强大的代码。但同时,也要注意其带来的潜在问题...

    JAVA在Windows平台上生成机器码

    4. **在Java中加载本地库**:在Java程序中,使用`System.loadLibrary()`或`Class.forName().getMethod().invoke()`等方式加载本地库,使Java能够调用已编译的本地方法。 5. **测试和调优**:运行Java程序,确保本地...

    JAVA反射机制应用

    JAVA反射机制应用 JAVA反射机制是JAVA语言中的一种动态机制,它能够在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法。这种动态获取的信息以及动态...

    java面试题--反射机制

    在Java面试中,经常会出现与反射机制相关的题目。这是因为Java反射机制不仅是Java语言的一项重要特性,也是理解Java动态特性的关键所在。通过本文,我们将深入探讨Java反射机制的核心概念、基本原理及其应用场景。 ...

    JAVA基础--JAVA中的反射机制详解

    在上面的代码中,首先通过 `owner.getClass()` 获取对象的 Class,然后配置参数的 Class 数组,接着通过 `ownerClass.getMethod(methodName, argsClass)` 获取该对象的方法,最后通过 `method.invoke(owner, args)` ...

    Java安全漫谈 - 02.反射篇(2)1

    在这个例子中,我们先通过 `getMethod("getRuntime").invoke(clazz)` 获取 `Runtime` 的单例实例,然后再调用 `getMethod("exec", String.class).invoke(runtimeInstance, command)` 来执行命令。 总结起来,Java...

    java反射机制,调用私有方法

    在描述中提到的`getMethod()`和`invoke()`方法是反射的核心组成部分。`getMethod()`是`Class`类的一个方法,用于获取指定类的所有公共方法,如果需要获取私有方法,应使用`getDeclaredMethod()`。`invoke()`方法则是...

    Java中颜色的String和Color对象之间的互相转换

    在上面的代码中,我们使用 `getMethod` 方法获取颜色对象的 getter 方法,然后使用 `invoke` 方法调用这些方法,获取颜色对象的红、绿、蓝三个分量的值。最后,我们可以根据这些值创建字符串形式的颜色。 Java 中...

    java 基于泛型与反射的通用 DAO

    在Java中,DAO通常负责与数据库的交互,包括CRUD(创建、读取、更新、删除)操作。 最后,“IBaseDao.java”可能是`BaseDao`的接口定义,它声明了一些通用的DAO操作,如`save`, `findById`等,以便于子类实现或继承...

    java例子 java反射

    method.invoke(obj, args); ``` 在Java学习中,反射常用于插件开发、框架设计、测试工具和元数据处理等场景。它的灵活性使得我们可以编写更加通用和动态的代码,但也需要注意滥用反射可能带来的性能损失和安全问题...

    java类复制一个持久化对象

    5. **读取和设置字段值**:`getMethod` 和 `setMethod` 分别获取了getter和setter方法,`invoke` 方法则用于执行这些方法,读取原对象的字段值并设置到新对象中。 ### 总结 通过上述代码,我们成功地利用Java反射...

Global site tag (gtag.js) - Google Analytics