项目结构图:
pojo类
package reflect; public class Point { private String x; private String y; public String getX() { return x; } public void setX(String x) { this.x = x; } public String getY() { return y; } public void setY(String y) { this.y = y; } public Point(String x, String y) { super(); this.x = x; this.y = y; } }
测试类
public static void main(String[] args) throws Exception{ InputStream is = ReflectionTest.class.getResourceAsStream("config.properties"); // InputStream is = ReflectionTest.class.getClassLoader().getResourceAsStream("reflect/config.properties");//从classPath开始找,使用相对路径 Properties pr = new Properties();//Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 pr.load(is);//从输入流中读取属性列表 System.out.println(pr.getProperty("x")+" "+pr.getProperty("y")); Point p = new Point("111", "222"); String propertyName = "x"; PropertyDescriptor pd = new PropertyDescriptor(propertyName, p.getClass());//PropertyDescriptor 描述 Java Bean 通过一对存储器方法导出的一个属性。 Method method = pd.getReadMethod();// 获得应该用于读取属性值的方法。 Object obj = method.invoke(p); System.out.println(obj); Method method2 = pd.getWriteMethod();//获得应该用于写入属性值的方法。 method2.invoke(p,"ccc"); System.out.println(p.getX()); }
config.properties
x=aaa y=bbb
输出结果:
aaa bbb 111 ccc
相关推荐
### Java反射机制与动态加载实例类 在Java中,反射是一种强大的工具,允许程序在运行时检查和修改其结构和行为。通过反射,我们可以动态地加载类、创建对象、访问和修改字段、调用方法等。本文将深入探讨Java反射...
在Java中,类加载器负责将类的字节码(.class文件)从磁盘加载到JVM(Java虚拟机)中,使程序能够执行这些类的方法和访问其属性。Java的类加载机制遵循“双亲委派模型”,这意味着当一个类加载器收到加载类的请求时...
总的来说,"JAVA反射机制的入门代码"是初学者理解Java反射机制的好教材,通过它,你可以学习如何动态地操作Java类,提高代码的灵活性,并掌握处理`properties`文件的基础方法。在深入学习和实践中,你将进一步理解...
Java反射是Java编程语言中的一个强大工具,它允许程序在运行时检查类、接口、字段和方法的信息,并能动态地创建对象和调用方法。在深入理解Java反射之前,我们首先要明白什么是反射机制。反射机制是指在运行状态中,...
泛型是Java 5引入的新特性,它允许在类、接口和方法中使用类型参数,增强了类型安全性和代码重用。泛型可以避免类型转换的麻烦,防止在集合操作中插入不兼容的对象,同时在编译时就能捕获潜在的类型错误。例如,...
- **配置文件读取**:通过反射机制可以动态读取配置文件中的类信息并实例化相应的对象。 #### 七、注意事项 虽然反射机制功能强大,但在使用时也需要注意以下几点: 1. **性能开销**:反射操作通常比直接的字节码...
JReloader的工作原理主要基于Java的反射和类加载器机制。在Java中,类加载器负责查找和加载类,通常是由系统类加载器完成。但通过自定义类加载器,我们可以实现特定的行为,比如在运行时加载新的类版本。JReloader...
2. **配置读取**:可以通过反射来解析配置文件中的类名,并实例化相应的对象。 3. **单元测试**:在单元测试中,反射可以用来访问私有成员变量或方法。 4. **热插拔功能**:通过反射动态加载新的类,实现热插拔功能...
(类加载器的概述和分类) (获取class文件对象的三种方式) (通过反射获取无参构造方法并使用) (通过反射获取带参构造方法并使用) (通过反射获取私有构造方法并使用) (通过反射获取成员变量并使用) (通过反射获取无参无...
Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、对象等的内部信息。这一机制对于理解和实现高级框架、动态代理、元数据处理等场景至关重要。以下是对Java反射机制的详细说明:...
这个过程展示了如何利用Java的反射API和自定义类加载器实现JAR文件的动态加载和执行。在实际应用中,可能还需要考虑类的版本冲突、安全性和性能优化等问题。例如,使用服务发现框架(如OSGi)来管理类加载和依赖,...
- 动态加载和实例化类:在不预先知道类名的情况下,根据配置文件或用户输入动态加载和创建对象。 - 访问私有成员:通过反射可以绕过访问控制,访问私有字段和方法,但这通常应谨慎使用,因为可能破坏封装性。 - ...
1. 动态加载类:在运行时根据用户输入或配置文件加载相应的类。 2. 框架开发:Spring框架中的依赖注入、AOP(面向切面编程)都大量利用了反射。 3. 测试工具:JUnit等测试框架使用反射来调用私有方法或设置私有字段...
在不知道具体需要创建哪个类的实例时,可以使用反射技术根据配置文件或其他方式动态创建类的实例。例如,在Struts框架中,可以通过反射技术根据配置文件中的类名动态创建`MessageResources`实例。 ```java Class<?>...
在配置文件或注解中声明bean及其依赖,Spring会使用反射创建对象并设置其属性。 - **AOP(面向切面编程)**: Spring AOP通过代理模式实现,反射用于在运行时动态创建代理对象,实现切面逻辑。 8. **注意事项** - ...
默认有三个内置的类加载器:Bootstrap ClassLoader(引导类加载器)、Extension ClassLoader(扩展类加载器)和App ClassLoader(应用程序类加载器)。开发者可以自定义类加载器,实现`java.lang.ClassLoader`接口,...
【JAVA反射和注释】 在Java编程语言中,反射和注解是两个重要的特性,它们赋予了程序在运行时动态地访问和修改自身结构的能力。本章将深入探讨这两个概念,以及类加载、链接和初始化的过程。 首先,类加载是Java...
1. 动态加载和执行代码:在某些情况下,可能需要在运行时根据用户输入或配置文件加载特定的类和方法。 2. 框架和库的实现:许多框架如Spring、Hibernate利用反射来实现依赖注入和元数据驱动的编程。 3. 测试工具:...
- 动态加载类:在运行时根据用户输入或配置文件加载相应的类。 - 框架开发:如Spring框架中的依赖注入,通过反射创建并配置对象。 - 测试工具:JUnit等测试框架利用反射来调用私有方法进行测试。 - 数据持久化:...