import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ReflectTest {
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("TaskProvidePropsList");//这里的类名是全名。。有包的话要加上包名
Object obj = clazz.newInstance();
Field[] fields = clazz.getDeclaredFields();
//写数据
for(Field f : fields) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
Method wM = pd.getWriteMethod();//获得写方法
wM.invoke(obj, 2);//因为知道是int类型的属性,所以传个int过去就是了。。实际情况中需要判断下他的参数类型
}
//读数据
for(Field f : fields) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
Method rM = pd.getReadMethod();//获得读方法
Integer num = (Integer) rM.invoke(obj);//因为知道是int类型的属性,所以转换成integer就是了。。也可以不转换直接打印
System.out.println(num);
}
}
}
相关推荐
本文介绍了如何使用Java反射机制来创建get和set方法,并通过反射调用这些方法来访问对象的属性。这种方式虽然灵活,但在实际开发中应当谨慎使用,因为它可能会降低代码的性能和可维护性。了解反射机制的基本原理对于...
Java反射是Java语言提供的一种强大的动态类型特性,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够动态地创建对象和调用方法。这个能力使得开发者可以突破静态类型的束缚,实现一些在编译时期无法完成...
总结,Java反射机制为我们提供了强大的动态性,能够方便地获取和操作类的属性和方法,包括私有成员和子类父类中的成员。通过熟练掌握反射技术,开发者可以实现更灵活、更动态的代码,但也需要谨慎使用,以避免潜在的...
Java反射是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态获取信息以及动态调用对象方法的功能称为Java的反射机制。反射机制为...
Java反射调用是Java语言提供的一种强大的动态类型机制,它允许程序在运行时检查并使用类的信息,包括类的方法、属性以及构造器等。在Java中,反射是通过`java.lang.reflect`包中的类实现的,如`Class`、`Constructor...
总结起来,Java通过`PropertyDescriptor`和反射调用`set`和`get`方法的核心步骤包括: 1. 获取属性对应的`Class`对象。 2. 使用`Field`类查找属性字段。 3. 构造并验证`set`和`get`方法的名称。 4. 使用`Method`类...
3. **访问字段**:通过`Class`对象的`getFields()`或`getDeclaredFields()`方法获取所有公共或私有字段,然后使用`Field`对象的`get()`或`set()`方法读取或修改对象的字段值。 4. **调用方法**:使用`Class`对象的`...
对于私有字段和方法,可以使用`setAccessible(true)`来绕过访问限制。这需要谨慎使用,因为可能破坏封装性。 ```java field.setAccessible(true); field.set(obj, newValue); ``` 总结来说,Java反射提供了一...
这篇博文将带你入门Java反射,并通过属性和方法的调用来实践这一概念。 首先,理解反射的基础概念。在Java中,`Class`类代表了运行时的类信息。通过`Class`对象,我们可以获取到类的名称、构造器、方法和字段。例如...
- `b.setPwd()`, `b.setAcc()`通过反射调用了`AA`类的方法。 - `testshow(b)`可能是一个用于显示对象信息的自定义方法。 - `Class o=Class.forName("testf.AA")`获取`AA`类的`Class`对象,`o.getName()`返回类的...
通过Java反射机制,我们可以在运行时获取类的信息,包括类的成员变量、方法、构造方法等,并可以动态地调用这些成员变量和方法。 获取Class对象 ---------------- 在Java中,Class对象是反射机制的基础。我们可以...
在Java中,反射主要用于在运行时分析类、接口、字段和方法的信息,使得我们可以在不知道对象具体类型的情况下创建和操作对象。下面我们将详细探讨Java反射的基本方法及其应用。 一、获取类信息 1. `Class` 类:...
4. 调用方法:对获取到的`Method`对象,调用`invoke()`方法,传入对象实例和方法参数。 下面是一个简单的示例,演示了如何动态加载一个类并调用其方法: ```java public class Tafcm01 { public static void main...
- 学习API:深入学习`java.lang.reflect`包下的类和方法,掌握如何使用它们。 - 实践操作:通过编写实际代码,体验反射的使用,例如动态调用方法、访问私有成员等。 - 阅读源码:研究知名框架如Spring中的反射...
Java反射机制是Java编程语言中一个强大的特性,它允许程序在运行时动态地获取类的信息并操作类的...理解并熟练掌握Java反射机制,可以极大地提升开发效率和代码的灵活性,但同时也需要对可能带来的问题有所预见和预防。
Java反射是Java编程语言中的一个强大特性,它允许运行时的程序访问并操作类、接口、字段和方法等信息,即使这些信息在编译时并未明确知晓。在Java中,反射通常通过`java.lang.Class`类和相关的API来实现。本实例将...
- 使用getField()、getDeclaredField()获取字段,并通过set()和get()方法设置和获取字段值。 3. **Method类** - Method对象表示类的方法,包括静态方法和实例方法。 - 使用getMethods()获取公共方法,...
通过`Class`的`getDeclaredFields()`或`getFields()`获取字段,然后使用`set()`和`get()`方法对字段进行读写操作,包括访问私有字段。 4. 调用方法:`Method`类代表类的方法。`Class`的`getDeclaredMethods()`或`...
Java反射是Java编程语言的一个特性,它允许运行时检查和操作程序结构(类、字段、方法等)。反射的主要用途包括但不限于:动态实例化对象、访问私有成员、调用方法、获取类的信息等。 #### 二、如何创建反射类? ...
在Java反射中,针对类的不同组成部分(构造函数、字段和方法),`java.lang.Class`类提供了多种反射调用方式来获取信息。以下是几种常用的反射调用: - **获取构造函数**:`Constructor getConstructor(Class[] ...