为什么一定要把a的所有数据给ax,然后ax根据那些数据运算呢?不可以先在a中根据那些数据运算,然后将运算后的数据给ax的属性axParam吗?

解决方案 »

  1.   

    如果你一定要这样的话,试试这个
    import org.apache.commons.beanutils.BeanUtils;
    ...
    BeanUtils.copyProperties(ax, a);
    ...
      

  2.   

    可以将Ax的构造方法写成传递参数的,
    例如:
    public class Ax extends A{
    private A a = new A();
    public Ax(A a){
    this.a=a;
    }
    }
      

  3.   

    給public class A 加個方法就可了, 在c++中叫深複製 .public class A
    {
       Copy( A a )
       {
          複製屬性值
       }
      

  4.   

    楼主既然有勇气写100个这样的 getter, setter, 就有勇气写 100 个:
    ax.setXXX(a.getXXX()).// 这就是传说中的 Java 豆?
      

  5.   

    你的ax是继承a的,而你又要把a的数据全部复制给ax,这个好奇怪,为什么不直接把数据给ax呢?不然你就用 hxzg001(大家踊跃结贴啊)说的BeanUtils.copyProperties(ax, a);其实这样也很奇怪,这个本来是用在两个属性相似的javabean之间的。
      

  6.   

    楼主在什么样的情况要这样用啊,这个javabean之间的继承关系设计的怪别扭的。应该有别的方法可以避免出现这样的情况的吧。
      

  7.   

    我觉得似乎可以这样:把用到了 A a 的地方都换成 Ax a,不就成了?
      

  8.   

    是否可以写个程序自动生成代码呢:for (int i = 1; i <= 100; i++)
      printf("ax.setparam%d(a.getparam%d)", i);
      

  9.   

    这是我这些天在学习struts和hibernate时遇到的问题,当然写在这里时经过了简化和夸张。因为是初学,有时遇到了问题找不到好的解决方法,所以才有这样的需求。高手可否看一下我在实际中遇到的问题是怎么样的,应该怎么解决?假设我首先从数据库得到一个表对应的pojo,这个pojo的属性与数据库相关的表的字段相对应。    这个pojo这就是我问题中的父类A但是我为了在STRUTS页面中显示一些数据,所以要构造一个view类。它的属性基本上和前面的那个pojo相同,但是还有一些新增加的内容。它可以extends前面的那个pojo  这个view类就是我问题中的子类Ax这样,每当我想从STRUTS页面上显示数据时,我首先要从数据库中得到那些pojo,然后再将每个pojo中的数据赋给view,然后再根据这些数据得到一些结果,赋给view中另外的属性,再发给STRUTS页面,再显示出来。因为pojo中属性比较多,且有更改的可能,所以我希望有个办法能把它的数据方便地传给view,于是引申出我最开始问的那个问题。  高手可否指点一下,我的设计思路是否正确,有没有更好的方法。分可以再加!
      

  10.   

    谢谢hxzg001(大家踊跃结贴啊) 的方法,觉得不错
      

  11.   

    我觉得gwang119()的方法不妨一试。