2011-02-03 6 views
5

Có ai biết về bất kỳ hỗ trợ hiện có nào để sửa đổi các thuộc tính riêng lẻ của các đối tượng bất biến được lưu trữ trong một đối tượng tuân thủ JavaBean không?Hỗ trợ Javabean hiện tại để thay đổi các tài sản con không thay đổi

Đối với một ví dụ nhỏ:

Đối với lớp giá trị bất biến nhất định và đối tượng đậu (không lo lắng về việc người nghe cho việc này):

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

Đó là đã có thể xem bất động sản như bean.value.value.

Tôi đang tìm cách xem liệu có cách nào hiện có để nói bean.value.value = 3 và về cơ bản có cuộc gọi tương đương với bean.setValue(bean.getValue().withValue(3)); hay không.

Lưu ý rằng đối tượng giá trị thực tế phức tạp hơn đáng kể.

Cảm ơn!

Trả lời

1

Tôi sẽ thử tạo lớp BeanInfo cho lớp bean chỉ định phương thức trình biến đổi đặc tính bằng cách sử dụng setWriteMethod. Phương thức ghi này có thể lấy giá trị int nguyên thủy và tạo đối tượng giá trị bất biến từ nó và gán nó cho trường thuộc tính.