public class MyMethod {
private static class MethodBean {
private int MethodId;
private String MethodName;
public int getMethodId() {
return MethodId;
}
public void setMethodId(int methodId) {
MethodId = methodId;
}
public String getMethodName() {
return MethodName;
}
public void setMethodName(String methodName) {
MethodName = methodName;
}
}
protected MethodBean createMethodBean(int id, String name) {
MethodBean bean = new MethodBean();
bean.setMethodId(id);
bean.setMethodName(name);
return bean;
}
/**
* copy object1's data to object2
*/
protected void CopyBean(Object object1, Object object2)
throws IntrospectionException, IllegalArgumentException,
IllegalAccessException, InvocationTargetException {
BeanInfo beanInfo1 = Introspector.getBeanInfo(object1.getClass());
BeanInfo beanInfo2 = Introspector.getBeanInfo(object2.getClass());
//获得 object1 beans PropertyDescriptor
PropertyDescriptor[] descriptors1 = beanInfo1.getPropertyDescriptors();
//获得 object2 beans PropertyDescriptor
PropertyDescriptor[] descriptors2 = beanInfo2.getPropertyDescriptors();
for (PropertyDescriptor descriptor1 : descriptors1) {
for (PropertyDescriptor descriptor2 : descriptors2) {
if (descriptor1.getName().equals(descriptor2.getName())) {
//获得应该用于读取属性值的方法。
Method readMethod = descriptor1.getReadMethod();
//获得应该用于写入属性值的方法。
Method writeMethod = descriptor2.getWriteMethod();
if (readMethod == null || writeMethod == null)
continue;
//对带有指定参数的指定对象调用由此 Method 对象表示的基础方法。
Object object = readMethod.invoke(object1);
writeMethod.invoke(object2, object);
continue;
}
}
}
}
public static void main(String[] args) throws IntrospectionException,
IllegalArgumentException, IllegalAccessException,
InvocationTargetException {
MyMethod myMethod = new MyMethod();
MethodBean bean_1 = myMethod.createMethodBean(2008, "MyMethod One");
MethodBean bean_2 = new MethodBean();
myMethod.CopyBean(bean_1, bean_2);
System.out.println("object1 id = " + bean_1.getMethodId());
System.out.println("object1 name = " + bean_1.getMethodName());
System.out.println("object2 id = " + bean_2.getMethodId());
System.out.println("object1 name = " + bean_2.getMethodName());
}
}
打印结果:
object1 id = 2008
object1 name = MyMethod One
object2 id = 2008
object1 name = MyMethod One
分享到:
相关推荐
EJB实体Bean常用于企业级应用中,如电子商务系统、客户关系管理系统(CRM)等,处理大量数据的增删改查,同时保证数据的一致性和安全性。 ### 六、总结 EJB实体Bean结合Eclipse IDE和MySQL数据库,提供了一种强大...
实体Bean(Entity Beans)是EJB的一种类型,它代表了业务逻辑中的持久数据,通常对应数据库中的记录。在这个"购物车"案例中,我们将会探讨如何使用EJB来开发一个简单的实体Bean,以及与之交互的Web前端。 1. **EJB...
实体Bean继承是Java企业级应用开发中的一个重要概念,特别是在使用Java持久化技术(JPA)进行数据存储时。实体Bean代表数据库中的一个表,而实体Bean之间的继承关系则需要在数据库层面进行适当的映射,以便正确地...
- **Bean类**:包含业务逻辑,对于CMP类型的实体Bean来说,Bean类通常是一个实现了`EntityBean`接口的抽象类,其中的方法(如get/set方法)用于操作数据。 - **接口文件**:实体Bean拥有对外接口(远程接口`Remote...
在这个特定的"spring IOC反射装载bean"的主题中,我们将深入探讨Spring如何通过XML配置文件来加载和管理Bean,并利用Java的反射机制来实例化这些Bean。 首先,Spring容器通过读取XML配置文件来获取Bean的定义。这些...
本资源包包含了会话Bean、实体Bean和消息Bean的源代码,这三种类型的Bean是EJB 3.0的核心组成部分。 1. **会话Bean (Session Beans)** - **无状态会话Bean (Stateless Session Beans)**: 提供无持久性状态的业务...
实体Bean代表持久化的业务对象,它们与数据库中的记录相对应,负责存储和检索数据。EJB 3.0引入了注解驱动的开发方式,大大简化了实体Bean的编程模型,使得开发者不再需要编写大量的XML配置文件。 在JBoss应用...
6. **任意文件转任意实体**:实现这一功能可能需要一种灵活的策略,如使用反射机制动态地获取Bean的类信息,并结合文件解析器来填充Bean的属性。同时,需要考虑文件编码、数据格式识别等问题。 7. **配置Class类**...
2. **Container-managed Persistence (CMP)**:容器负责对象与数据库之间的持久化工作,开发者无需直接处理数据库操作,只需定义实体Bean的字段和属性。 3. **Entity Beans 3.0(EJB 3.0引入)**:简化了Entity Bean...
在EJB中,实体Bean(Entity Bean)是持久化对象的代表,它们负责存储和检索数据库中的数据。在这个“EJB实体Bean学习”主题中,我们将深入探讨实体Bean的两大类型——BMP(Business Managed Persistence)和CMP...
EJB 3.0是Java企业版(Java EE)中的一个重大改进,它极大地简化了企业级Java组件的开发,特别是对于实体Bean的处理。在EJB 3.0之前,实体Bean通常需要实现Home接口、Remote接口或Local接口,这使得编码过程变得复杂...
在Java开发中,单表实体Bean是用于封装数据库中单个表的数据对象,它是Java Persistence API(JPA)或Hibernate等ORM(对象关系映射)框架中的核心概念。本篇文章将深入探讨单表实体Bean的概念、作用以及如何在实际...
json字符串实体bean或者List<bean>互转(gson和jackson,支持泛型),支持json的格式化,所需要的包在代码也有说明。还有少的可以告知我,谢谢
Java的反射API(Reflection API)允许程序在运行时检查类的信息,创建和操作动态Bean。另外,Spring框架的Prototype bean定义也可以实现类似的功能,允许每次请求时创建一个新的bean实例。 4. **Map**: Map是Java...
实体Bean之间的级联关系是Java持久化框架如Hibernate或JPA中的一个重要概念,它涉及到对象关系映射(ORM)中的数据操作同步性。在数据库中,实体Bean通常代表表中的行,而实体间的级联关系则反映了表之间的关联。...
在EJB规范中,实体Bean(Entity Bean)是一种特殊类型的组件,用于持久化数据到数据库,模拟业务对象。事务管理则是EJB中的重要组成部分,确保了业务操作的一致性和可靠性。 1. **EJB实体Bean** - **定义**: EJB...
Java没有内置的深拷贝机制,但可以通过反射实现。假设我们有两个 `Person` 类的实例 `person1` 和 `person2`,我们想要将 `person1` 的属性值复制到 `person2`: ```java public static void copyBeanProperties...
在 JPA 出现之前,Java EE 应用程序通常使用容器管理的实体 Bean 来处理数据持久化。这种模型虽然有效,但配置繁琐且不够灵活。JPA 的引入极大地简化了这一过程。 使用 JPA,开发人员可以将任何普通的旧式 Java ...
在Java开发中,数据库实体Bean是数据访问层与业务逻辑层之间的重要桥梁,它们通常用于映射数据库表中的记录。自动生成这些实体Bean可以极大地提高开发效率,减少手动编码的工作量。"根据读取数据库自动生成实体bean...
在Java EE应用开发中,实体Bean(Entity Bean)是一种核心组件,用于表示数据库中的数据对象。这个主题“10_开发单表映射的实体bean”聚焦于如何将数据库单表的数据映射到Java对象,以便在应用程序中进行操作。在本...