2011-02-03 9 views
5

क्या किसी को जावाबीन अनुपालन ऑब्जेक्ट के तहत संग्रहीत अपरिवर्तनीय वस्तुओं के व्यक्तिगत गुणों को संशोधित करने के लिए किसी भी मौजूदा समर्थन के बारे में पता है?अपरिवर्तनीय सबप्रोपर्टीज बदलने के लिए मौजूदा जावबीन समर्थन

एक छोटी सी उदाहरण के लिए:

दिया अपरिवर्तनीय मूल्य वर्ग और सेम वस्तु (इस के लिए श्रोताओं के बारे में चिंतित नहीं) के लिए:

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; 
    } 
} 

यह पहले से ही bean.value.value के रूप में संपत्ति को देखने के लिए संभव है।

मैं देख रहा हूं कि bean.value.value = 3 कहने का कोई मौजूदा तरीका है और मूल रूप से bean.setValue(bean.getValue().withValue(3)); के बराबर कॉल है।

ध्यान दें कि वास्तविक मूल्य वस्तु काफी जटिल है।

धन्यवाद!

उत्तर

1

मैं बीन क्लास के लिए एक बीनइन्फो क्लास बनाने का प्रयास करूंगा जो setWriteMethod का उपयोग कर संपत्ति म्यूटेटर विधि निर्दिष्ट करता है। यह लेखन विधि आदिम int मान ले सकती है और इससे अपरिवर्तनीय मूल्य वस्तु बना सकती है और उसे संपत्ति क्षेत्र में असाइन कर सकती है।

संबंधित मुद्दे

 संबंधित मुद्दे