今天碰到一个关于反射的例子,写出一个简单的测试代码,作为记录。
package reflect;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class MainClass {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
//反射获得指定名称的类进行加载
Class cls = Class.forName("reflect.MyClass");
Class[] para = new Class[]{String.class, String.class};
//获得该类的构造方法对象,参数为空
Constructor constructor = cls.getConstructor();
//通过构造方法获得一个实例化对象,注意参数也是为空
MyClass instance1 = (MyClass) constructor.newInstance();
//调用方法,显示具体内容
instance1.test();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
MyClass是被测试类,代码也很简单
/**
*
*/
package reflect;
/**
* @author Administrator
*
*/
public class MyClass {
/**
*
*/
public MyClass() {
// TODO Auto-generated constructor stub
System.out.println("my calss() is created");
}
public MyClass(String a, String b){
System.out.println("my calss(a,b) is created");
}
public void test(){
System.out.println("mycalss.test() is runing");
}
}
测试结果:
my calss() is created
mycalss.test() is runing
分享到:
相关推荐
Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、对象等的内部结构。通过反射,开发者可以动态地获取类的信息并调用其方法,创建对象,访问私有成员,甚至改变类的行为。在深入...
### 反射实例—JAVA反射机制 #### 一、反射概念及原理 反射在计算机科学领域,特别是程序设计中,是指程序有能力访问、检测和修改其自身的结构和行为。这一概念最早由Smith于1982年提出,并迅速应用于各种编程语言...
Java的反射机制与动态代理是Java编程中两个非常重要的高级特性,它们在许多实际场景中发挥着关键作用,如框架开发、插件系统、元数据处理等。下面将详细讲解这两个概念及其应用。 首先,Java的反射机制允许我们在...
### Java的反射机制及其实际应用 #### 一、引言 Java作为一种强大的编程语言,提供了许多高级特性,其中反射机制尤为突出。通过反射,开发者可以在运行时动态地获取类的信息并操纵类的行为,从而实现更加灵活和...
Java反射机制主要通过`java.lang.reflect`包下的API实现,其中最重要的类包括: - `Class`:代表一个类,是所有反射操作的基础。 - `Method`:表示类中的一个方法。 - `Constructor`:表示类中的一个构造函数。...
### Java反射机制详解 #### 一、反射的基本概念与历史背景 反射的概念最早由Smith在1982年提出,其核心思想是程序有能力访问、检测甚至修改自身的状态和行为。这种能力一经提出,迅速成为了计算机科学领域的研究...
考虑到这是一个简单的反射例子,`ReflectTest.java`可能包含以下内容: ```java public class ReflectTest { public String echo(String msg) { return "Echo: " + msg; } public static void main(String[] ...
- **动态代理**:Java的动态代理机制(`java.lang.reflect.Proxy`)利用反射实现代理类的创建。 - **元数据处理**:例如处理注解(annotations),获取带有特定注解的类、方法等。 - **通用工具类**:例如深度拷贝、...
为了展示反射如何工作,我们来看一个简单的例子: ```java import java.lang.reflect.*; public class DumpMethods { public static void main(String[] args) { try { Class<?> c = Class.forName(args[0]); ...
简单来说,反射机制使得Java程序可以自我检查、自我调整。 在Java中,所有的类型都是`Class`类的实例,因此可以通过`Class`类来访问任何类型的数据结构。反射的核心能力在于可以在运行时: - 获取类的所有属性和...
### Java反射机制详解 #### 一、什么是Java的反射机制 Java反射机制是Java语言的一种重要特性,使得Java成为了一种动态性很强的语言。通过反射,可以在程序运行时获取类的信息,包括类名、父类、接口、字段、方法...
在Java中,反射机制的核心类集中在java.lang.reflect包下,包括Class、Constructor、Method和Field等。通过这些类,我们可以动态地获取类的信息,创建对象,调用方法以及访问和修改字段。 1. **类的加载与Class对象...
Java的反射机制就是通过这些元数据来操作类的实例。 在Java中,`java.lang.Class` 类是所有类的通用表示,它代表了Java运行时的类信息。你可以通过以下方式获取到一个类的Class对象: 1. 使用 `Class.forName("全...
Java反射机制的实现主要依赖于`java.lang.reflect`包中的几个核心类: - **Class类**:表示一个类,是反射机制的核心。通过Class类可以获取类的各种信息,如构造器、方法、字段等。 - **Field类**:表示类的成员...
下面是一个简单的Java反射机制的实现例子: ```java import java.lang.reflect.Field; public class ReflectionExample { private String privateField = "默认值"; public static void main(String[] args) ...
以下是一个简单的Java反射示例,展示了如何使用反射来获取类的信息: ```java import java.lang.reflect.*; public class DumpMethods { public static void main(String args[]) { try { Class c = Class.for...
在Java中,反射主要涉及到`java.lang.Class`类、`java.lang.reflect`包下的类如`Constructor`、`Method`和`Field`等。通过这些类,我们可以实现对Java对象的深度控制,比如访问私有属性、调用私有方法、创建对象等。...