java 反射执行方法怎的成语
Java射是Java言中比较重要的技术,可以帮助开发人员在不了解具体类型的情况下,对对象进行操作。本文将重点讲解 Java射执行方法的常用方法。
一、Java射的概念
反射(Reflection),是指程序可以访问、检测和修改它本身状态或行为的一种能力。它有助于完成自省(introspection),自描述(introspection)和自配置(configuration)的许多任务。在 Java 中,反射是指在运行时,分析和使用类、接口、字段、方法等等的能力。
反射机制是 Java言中一种强有力的工具,它允许程序在运行时,可以运行任意对象,调用任意方法,判断任意类型,构造任意类型实例,在程序中可以实现动态加载和动态链接的功能。
二、Java射执行方法
Java射支持执行类中的方法,执行这些方法前需要获取 Method象,方法可以通过 Method象执行。下面我们将介绍Java射执行方法常用的方法:
1. 使用 DeclaredMethods()法获取类中所有方法,然后再根据需要调用方法;
2. 使用 Method()法获取指定方法;
3. 使用 DeclaredMethod()法获取类中指定方法;
4. 使用 Constructor()法获取构造器,再调用 newInstance()法;
5. 使用 Class.forName()法动态加载类,再调用 newInstance()法;
6. 使用 wInstance()法创建类的实例,再调用实例的方法。
三、Java射执行方法的实例
下面我们给出Tast类的定义:
划的成语 public class Test {
对祖国的美好祝愿 public void sayHello() {
System.out.println(Hello!);
}
public void sayBye() {
System.out.println(Bye!);
}
}
1. 使用 DeclaredMethods()法获取类中所有方法,然后再根据需要调用方法:
//取Test类
Class clazz = Class.forName(Test
//取Test类中所有方法
上课如何瘦腿 Method[] methods = DeclaredMethods();
//历方法
for (Method method : methods){
//印方法名
System.out.Name());
//取方法名
String methodName = Name();
//据需要执行方法
if(sayHelloequals(methodName)){
湖南抗战 //用sayHello()方法
method.wInstance());
}
if(sayByeequals(methodName)){
//用sayBye()方法
method.wInstance());
}
}
消防法
2. 使用 Method()法获取指定方法:
//取Test类
Class clazz = Class.forName(Test
// 使用类加载器加载Test类
ClassLoader loader = ClassLoader();
//取sayHello()方法
Method method = Method(sayHello loader);
//行sayHello()方法
method.wInstance());
3. 使用 DeclaredMethod()法获取类中指定方法:
外疮 //取Test类
Class clazz = Class.forName(Test
//取sayBye()方法
Method method = DeclaredMethod(sayBye
//行sayBye()方法
method.wInstance());
4. 使用 Constructor()法获取构造器,再调用 newInstance()法:
//取Test类
Class clazz = Class.forName(Test
//取Test类的构造函数
Constructor constructor = Constructor();
//过构造函数实例化对象
Object obj = wInstance();
//用sayHello()方法
Method method = DeclaredMethod(sayHello
//行sayHello()方法
method.invoke(obj);
5. 使用 Class.forName()法动态加载类,再调用 newInstance()法:蝙蝠的图片
//过Class.forName()方法动态加载Test类
Class clazz = Class.forName(Test
//过newInstance()获取Test类实例对象
Object obj = wInstance();