`
yeelor
  • 浏览: 418037 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java Reflection:Methods类方法

    博客分类:
  • Java
 
阅读更多

用Class 的getMethods 可以取的类的全部方法的定义

 

Class aClass = ...//obtain class object  
Method[] methods = aClass.getMethods(); 

 

如果知道类方法的参数类型,则可以使用getMethod 取的对应的方法定义,如:

Class  aClass = ...//obtain class object  
Method method = aClass.getMethod("doSomething", new Class[]{String.class}); 

 

 

 

上例取的方法名为doSomething 带一个String为参数的方法定义。如果找不到对应的方法,JavaReflection 抛出NoSuchMethodException 异常。

如果需要方法的方法不带参数,则使用null 做为getMethod的第二个参数,如下:

 

Class  aClass = ...//obtain class object  
Method method = aClass.getMethod("doSomething", null); 

 


 1. 获取方法的参数和返回值定义

获取参数定义

 

Method method = ... // obtain method - see above  
Class[] parameterTypes = method.getParameterTypes(); 

 

 

获取返回值定义

 

Method method = ... // obtain method - see above
Class returnType = method.getReturnType();

 
2. 使用Method对象调用该方法

 

//get method that takes a String as argument  
MyObject o = new MyObject();
Method method = MyObject.class.getMethod("doSomething", String.class); 
Object returnValue = method.invoke(o, "parameter-value1"); 
//method.invoke 的调用个参数为该方法对应的类对象,如果方法为static 类型,则使用null,后面的参数为该方法的参数值。
Method method = MyObject.class.getMethod("doSomething", String.class); 
Object returnValue = method.invoke(null, "parameter-value1"); 

 

 

分享到:
评论

相关推荐

    Java Reflection in Action

    3. **调用方法(Methods)**:`getMethods()`和`getDeclaredMethods()`方法用于获取类的所有公共方法和所有方法。使用`invoke(Object obj, args...)`可以动态调用方法,传入的对象实例和参数。 4. **构造器...

    Java Reflection (JAVA反射)详解

    Java 反射(Java Reflection)是Java编程语言中的一种高级特性,它允许程序在运行时动态地获取类的信息(如类名、字段、方法等)并进行操作,从而增加了程序的灵活性和动态性。以下是对Java反射机制的详细解释: 1. ...

    Java Reflection(JAVA反射)详解

    Java反射是Java编程语言的核心特性之一,它允许程序员在运行时检查和操作类、接口、字段和方法等对象。这使得Java程序具有高度的灵活性和动态性,可以在不事先知晓具体类信息的情况下处理对象。 首先,要使用Java...

    java反射操作父类所有属性和方法

    在Java编程语言中,反射(Reflection)是一项强大的特性,它允许程序在运行时动态地获取类的信息,并能够直接操作这些信息。通过反射,我们可以获取类的字段、方法等元数据,甚至可以创建实例并调用其方法。本文将...

    java 反射机制 详细讲解

    运行命令`java DumpMethods java.util.Stack`会列出`java.util.Stack`类的所有方法。 ##### 示例2:复制对象及其属性 ```java import java.lang.reflect.*; public class ReflectTester { public Object copy...

    Java实列入门实列

    6. **方法(Methods)**:方法是代码的复用单元,通过定义方法来封装功能,提高代码的可读性和可维护性。 7. **数组**:数组是一种存储固定数量相同类型元素的数据结构。了解如何声明、初始化和操作数组对于处理...

    Java反射机制课件ppt

    反射机制允许Java程序在运行时检查类的结构,包括类的属性(fields)、方法(methods)、构造器(constructors)以及类的元数据(如修饰符、父类、接口等)。通过反射,开发者可以获取到一个类的Class对象,它是对...

    Reflection相关

    Java反射(Reflection)是Java语言的一个重要特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的动态性,可以在运行时动态加载类、创建对象、调用方法,甚至...

    java反射机制

    这种动态获取类的信息以及动态调用对象的方法的功能来自于 Java 语言的反射(Reflection)机制。 Java 反射机制主要提供了以下功能: * 在运行时判断任意一个对象所属的类。 * 在运行时构造任意一个类的对象。 * ...

    Java类的反射与动态加载

    在Java中,每一个类都被编译成.class文件,这些文件包含了类的所有信息,包括字段(fields)、方法(methods)和构造器(constructors)。反射API提供了一组类和接口,如Class、Constructor、Method和Field,它们...

    java的反射机制

    Java反射机制是Java语言提供的一种能在运行时分析和操作类、对象、方法等的能力。它使得开发人员可以在程序运行过程中动态地获取类的信息(例如类名、字段、方法等),并且能够动态地创建和操作对象。这种能力为Java...

    java反射机制详解

    此示例展示了如何使用Reflection API来获取一个类的所有方法信息。 ```java import java.lang.reflect.*; public class DumpMethods { public static void main(String args[]) throws Exception { // 加载并...

    Java2核心技术卷I+卷2:基础知识(第8版) 代码

    Java 核心技术 卷1 Index ...Calling Java Methods 956 Accessing Array Elements 962 Handling Errors 966 Using the Invocation API 970 A Complete Example: Accessing the Windows Registry 975 Index 991

    编程语言java反射.pdf

    在Java编程语言中,反射(Reflection)是一个强大的工具,允许程序在运行时检查和操作其他类的内部结构,包括类的属性、方法、构造器等。这个特性使得Java具备了动态性,可以在程序执行过程中获取和修改对象的状态,...

    java 反射得到某个方法

    在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作类、接口、字段以及方法等对象。通过反射,开发者可以动态地获取类的信息并调用其方法,即使这些方法在编译时并不知道。本文将...

    Java 自省类教程

    自省(Reflection)是指程序可以在运行时获取自身的结构(如类、接口、字段、方法等)并进行操作的一种机制。它是Java语言的一个重要特性,为开发者提供了在运行时动态地访问和使用程序信息的能力。 ##### 2.2 应用...

    反射实例-JAVA反射机制.doc

    Java 反射机制是 Java 语言提供的一种强大的工具,它允许程序在运行时动态地获取类的信息(如类名、属性、方法等)并进行操作。这种能力使得 Java 应用程序更加灵活,能够在运行时发现和修改自身的行为。然而,反射...

Global site tag (gtag.js) - Google Analytics