内省操作javabean,是反射的一种特殊形式,更简单的操作
//示例代码
package com.itcast.bean;
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
private String grade;
private String age;
}
//测试类
package com.itcast.bean;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import org.junit.Test;
public class Demo {
@Test
public void getAllProperty() throws Exception {// 用内省获得bean的所有属性
BeanInfo info = Introspector.getBeanInfo(Person.class);
PropertyDescriptor[] pds = info.getPropertyDescriptors();
for (int i = 0; i < pds.length; i++) {
System.out.println(pds[i].getName());
}
}
@Test
public void getNeed() throws Exception {// 获得指定的bean属性
Person p = new Person();
PropertyDescriptor pd = new PropertyDescriptor("age", Person.class);//获得这个属性的所有信息
Method wrimethod = pd.getWriteMethod();//获得属性的写方法
wrimethod.invoke(p, "20");//执行写方法
Method redmethod = pd.getReadMethod();
System.out.println(redmethod.invoke(p));
}
@Test
public void switchType() throws Exception{//获得指定的参数的类型
PropertyDescriptor pd = new PropertyDescriptor("age", Person.class);
System.out.println(pd.getPropertyType());
}
}
分享到:
相关推荐
在 J2EE 应用中,内省机制常用于框架自动识别 JavaBean 的属性,并根据这些属性进行相应的操作,例如:在容器中自动注入依赖。 ### 总结 JavaBean 作为一种标准的组件模型,在 Java 开发中起着重要作用。它不仅有...
7. **Commons-beanutils**:通过反射和内省操作JavaBean,简化属性的获取和设置。 8. **Commons-codec**:包含多种编码算法,如Base64、Hex、URL编码等。 9. **Commons-collections**:提供了对Java集合框架的扩展...
- **内省(Introspection)**:允许组件揭示其属性和操作,便于其他组件的发现和重用。 - **通信(Communication)**:通过事件机制传递消息,实现组件间的交互。 - **持久性(Persistence)**:保存组件状态,以便在不同...
"minimalcode-reflect"项目提供了一个简约的框架,专注于JavaBean的反射和内省功能,包括字节码生成、注解处理和类型操作。 1. **反射(Reflection)**:反射是Java提供的一种机制,它允许程序在运行时动态地获取类...
4. **内省支持**:JavaBean必须支持内省(Introspection),这意味着它可以自描述其属性和行为,方便框架和工具进行自动化处理。 5. **可视化工具兼容性**:为了在可视化应用程序生成工具中应用,JavaBean必须符合...
- **内省(Introspection)**:允许组件自省其属性和操作,方便其他组件发现和使用。 - **通信(Communication)**:组件间可以通过事件进行交互。 - **持久性(Persistence)**:保存组件的状态,以便恢复。 - **属性...
Apache Commons BeanUtils库进一步简化了内省操作。在示例中,虽然没有直接使用,但`BeanUtils`类提供了便捷的API来复制属性、设置值等。例如,`BeanUtils.copyProperties(Object dest, Object src)` 可以将源对象的...
内省机制使得我们能够动态地发现和操作JavaBean的属性,而无需了解其实现细节。例如,`PropertyDescriptor`是Java内省API中的一个关键类,它可以用于获取JavaBean的属性描述,进一步获取对应的getter和setter方法。...
4. **内省和JavaBean原理分析**:内省是Java中用于探测对象属性和方法的技术,本章会介绍JavaBean的基本操作及其内省的复杂应用,利用`BeanUtils`工具进行操作。 5. **注解的了解和应用**:注解是元数据的一种形式...
JavaWeb 开发中,BeanUtils 信息类是一个非常重要的组件,它提供了一种简洁的方式来操作 JavaBean 对象。在本文中,我们将详细介绍 BeanUtils 信息类的原理和使用方法。 一、BeanInfo BeanInfo 是 JavaBean 类的...
1. 内省:允许组件暴露其属性、事件和方法,便于在程序构建工具中进行发现和操作。这主要通过命名模式和BeanInfo类实现。 2. 属性:代表Bean的状态、外观和行为,可以在设计时进行修改。 3. 自定义:通过属性编辑器...
4. `commons-beanutils.jar`: Apache Commons BeanUtils库简化了JavaBean操作,通过反射和 introspection(内省)技术,使得操作JavaBean属性更加便捷,这在处理JSON到JavaBean的映射时非常有用。 5. 可能还会有...
内省(Introspection)则主要用于JavaBean的属性操作,如`set`和`get`方法,配合`Instrospector`、`BeanInfo`和`PropertyDescriptor`,可以方便地读写JavaBean的属性。此外,了解并熟练运用这些技术,能够有效地提高...
BeanUtils是Apache Commons BeanUtils库的一部分,它提供了一种简单的方式来操作JavaBean的属性,如`BeanUtils.populate(obj, args)`,可以将属性值批量设置到对象中。 数据库的元数据(Metadata)在Java中可以通过...
`BeanUtils`工具包提供了方便的方法来操作JavaBean。 注解(Annotation)是另一种元数据形式,用于提供有关代码的信息,如元编程、编译时验证和运行时处理。注解可以自定义,也可以使用Java内置的注解,如`@...
1. **JavaBeans**:在JavaBean开发中,反射用于访问和修改Bean的属性。 2. **序列化与反序列化**:在对象的序列化和反序列化过程中,反射用于处理未知类型的对象。 3. **远程方法调用(RMI)**:RMI使用反射来实现跨...
- 内省是指通过反射机制操作JavaBean的属性。 - 泛型提供了编译时类型安全检测机制,消除类型转换。 8. **注解(Annotation)**: - 注解是Java中的元数据,用于提供代码的附加信息。 - 讲解了JDK的元注解、...
5. **Introspection和Serialization**:JavaBeans提供了内省(Introspection)机制,允许程序在运行时动态检查和修改Bean的属性和方法。而序列化(Serialization)则使得JavaBean可以保存其状态并在稍后恢复。 6. *...