转换Java对象?

时间:2015-02-12 19:30:09

标签: java xml object jaxb pojo

如何将一个类的对象转换为另一个类的对象?例如,让我们说对象A具有属性" height"和#34;体重。"如何检查对象B是否具有这些相同的属性?如果对象B确实具有与对象A类似的属性,如何将这些值导入到对象A和/或创建具有这些属性和值的新对象?

感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

你可以使用Commons-BeanUtils BeanUtilsBean,方法copyProperties

http://commons.apache.org/proper/commons-beanutils/apidocs/org/apache/commons/beanutils/BeanUtilsBean.html

代码:

BeanUtilsBean bub = BeanUtilsBean.getinstance();

bub.copyProperties(yourObject1Dest,yourObjectOrig);

答案 1 :(得分:1)

所有情况都没有单一的答案。一些更常见的情况是:

  • 两个具有相同目的但来自不同库的类。每个库只能使用自己的类型。您需要为每个B编写构建A实例的粘合代码并自行处理转换(使用明确编写的代码)。

  • 两个具有相同目的的类,但您可以控制一个类。消除该类,只使用另一个。

  • 两个类但具有相同的目的,只是一个共同的方面。如果你可以控制它们。使用继承(如果一个是另一个的特例),委托(这两个类是不相关的,但可以将一个共同的方面考虑在内)或定义一个 interface 具有共同的方面,并且两个类都实现它。

答案 2 :(得分:0)

如果我收到你的问题:

public class A{
int height, weight;

  public A(int height, int weight){
    this.height = height;
    this.weight = weight;
  }

  public A(A originalObject){
    height = originalObject.height;
    weight = originalObject.weight;
  }
} 

public class B extends A{
  public B(int height, int weight){
    super(height, weight);
  }

  public B(B originalObject){
    super (originalObject);
  }

  public static void main(String [] args){
    B bObject = new B(10,20);
    A aObject = new A(bObject);
  }
}

答案 3 :(得分:-1)

我建议继续寻找。

检查对象是否具有某些属性的一种方法是在IDE中开始输入您想要的内容,例如:

Object.height

输入"后立即输入。"显示该类的元素。