2014-12-02 63 views
0

I'm usign春天的BeanUtils這個階級結構忽略子與BeanUtils的

 class B{ 
      int b; 
    } 

    class A{ 
      int a; 
      B bClass; 
    } 

然後接收實例的屬性要創建一個新的,但沒有B.B.的價值所以我這樣做:

A a = new A(); 
    B b = new B(); 
    b.setb(2); 
    a.seta(1); 
    a.setbClass(b); 
    A a1 = new A(); 
    BeanUtils.copyProperties(a, a1, new String[]{"bClass.b"}); 

但仍然值得b屬性2仍然在應付的a1類。

I'm做錯了什麼

回答

1

BeanUtils.copyProperties簡單的拷貝字段值。如果它是一個引用字段,它也會複製它(如果它不在ignoreProperties中),它不會進行深度複製。你不能讓它忽略B的字段。

+0

這將完全忽略bClass我相信,這不是什麼需要(這是忽略一個領域)。 – 2014-12-02 12:53:03

1

BeanUtils.copyProperties()適用於淺拷貝,因此您不能將其用於嵌套字段。您可以嘗試使用BeanWrapper,但我不確定那裏是否有類似ignored properties的內容,您可能必須手動執行此操作。