如何在Java中编写一个帮助器类来将类相互映射?

如何在Java中编写一个帮助器类来将类相互映射?,java,class,Java,Class,我有一个问题想了一会儿。假设我们有以下几类: public Class Person{ String name; String address; String description; } public Class PersonFacade{ String name; String address; String desc; } 正如您所看到的,这两个类之间的唯一区别是一个变量的名称。我的问题是,编写帮助器类以将一个对象的值映射到另一个对象的最

我有一个问题想了一会儿。假设我们有以下几类:

public Class Person{
    String name;
    String address;
    String description;
}

public Class PersonFacade{
    String name;
    String address;
    String desc;
}
正如您所看到的,这两个类之间的唯一区别是一个变量的名称。我的问题是,编写帮助器类以将一个对象的值映射到另一个对象的最佳方法是什么。假设我们有以下几点:

Person person = new Person();
person.name="name1";
person.address="address1";
person.description="description1";
我想编写一个类,它应该执行以下操作(我们称之为Transformer类)

我希望这个
TransformClass.transformFrom()
方法执行以下操作:

根据变量名称的相似性,将变量的值从“FromClass”分配到“ToClass” 所以在我们的例子中,我希望它分配
personFacade.name=“name1”
personFacade.address=“adderss1”
personFacade.desc=“description1”
(最后一个似乎很难完成,但让我们试试看)


有什么想法吗?

你可以使用推土机:

Dozer是一个JavaBean到JavaBean映射器,递归地复制数据 从一个物体到另一个物体。通常,这些javabean是 不同的复杂类型

Dozer支持简单属性映射、复杂类型映射、, 双向映射、隐式-显式映射以及 递归映射。这包括映射 还需要在元素级别进行映射

看看这个:

这是一个很棒的JavaBean映射器

这里是“入门”:


您可以使用推土机:

Dozer是一个JavaBean到JavaBean映射器,递归地复制数据 从一个物体到另一个物体。通常,这些javabean是 不同的复杂类型

Dozer支持简单属性映射、复杂类型映射、, 双向映射、隐式-显式映射以及 递归映射。这包括映射 还需要在元素级别进行映射

看看这个:

这是一个很棒的JavaBean映射器

这里是“入门”:


也许您可以编写自己的类来创建类之间的关系。比如说

public Class Person{
    @MyAnnotation(id='name')
    String name;

    @MyAnnotation(id='addr')
    String address;

    @MyAnnotation(id='desc')
    String description;
}

public Class PersonFacade{
    @MyAnnotation(id='name')
    String name;

    @MyAnnotation(id='addr')
    String address;

    @MyAnnotation(id='desc')
    String desc;
}

然后在TransformClass中,您只需迭代注释,找到匹配项并在的帮助下设置相应的字段值。

也许您可以编写自己的类来创建类之间的关系。比如说

public Class Person{
    @MyAnnotation(id='name')
    String name;

    @MyAnnotation(id='addr')
    String address;

    @MyAnnotation(id='desc')
    String description;
}

public Class PersonFacade{
    @MyAnnotation(id='name')
    String name;

    @MyAnnotation(id='addr')
    String address;

    @MyAnnotation(id='desc')
    String desc;
}

然后,在TransformClass中,您只需迭代注释,找到匹配项并在帮助下设置相应的字段值。

正是我要找的,tnxex正是我要找的,tnx