2011-02-03 22 views
5

JavaBean uyumlu bir nesnede saklanan değişmez nesnelerin tek tek özelliklerini değiştirmek için var olan herhangi bir destek var mı? Verilen değişmez değer sınıfı ve fasulye nesnesi (bunun için dinleyicilerin endişelenmiyor) içinDeğişmez altkümelerin değiştirilmesi için mevcut Javabean desteği

: Bu bean.value.value olarak mülkiyet görmek zaten mümkün

public class ValueObject { 
    private final int value; 

    public ValueObject(int value) { 
     this.value = value; 
    } 

    public ValueObject withValue(int newValue) { 
     return new ValueObject(value); 
    } 
} 

public class Bean { 

    private ValueObject value; 

    public ValueObject getValue() { 
     return value; 
    } 

    public ValueObject setValue(ValueObject value) { 
     this.value = value; 
    } 
} 

önemsiz Örneğin

.

bean.value.value = 3 için varolan bir yol olup olmadığını görmek ve temelde bean.setValue(bean.getValue().withValue(3));'a eşdeğeri bir çağrı olup olmadığını görmek istiyorum.

Gerçek değer nesnesinin önemli ölçüde daha karmaşık olduğunu unutmayın.

Teşekkürler!

cevap

1

SetWriteMethod kullanarak özellik mutator yöntemini belirten fasulye sınıfı için bir BeanInfo sınıfı oluşturmayı deneyebilirim. Bu yazma yöntemi, ilkel int değerini alabilir ve ondan değiştirilemeyen değer nesnesini oluşturabilir ve bunu özellik alanına atayabilir.