2010-01-15 34 views
5

Tôi đang cố gắng triển khai lớp miền ghi lại khi giá trị của bất kỳ thuộc tính nào bị thay đổi, nhưng kết quả cuộc gọi setProperty() của chúng tôi trong đệ quy vô hạn khi đặt giá trị thực.Groovy: Cách đặt thuộc tính trong setProperty() và tránh đệ quy vô hạn?

Đây là cách có vẻ ngay bây giờ:

void setProperty(String name, value) 
{ 
    if(name == "modified") 
    { 
     this.modified = value 
     return 
    } 
    else 
    { 
     if(this[name]==value) 
     { 
      return 
     } 
     this.modified = true 
     this[name]=value 
    } 
} 

Vậy làm thế nào tôi có thể truy cập vào một tài sản được đặt tên của mình mà không gây ra một đệ quy setProperty() cuộc gọi? Hay có cách nào khác để đạt được mục tiêu của tôi?

Trả lời

8
+0

này @ tên sẽ truy cập vào một tài sản cụ thể, nhưng tôi cần truy cập chung chung dựa trên tên thuộc tính.. Tôi đã thay đổi câu trả lời của bạn cho những gì tôi đã làm việc. Kỳ lạ thay, tôi đã tìm và cố gắng điều hành @. Tôi nghi ngờ rằng Netbeans vẫn đang chạy mã trước đó (nó thực sự sucks theo cách đó). –

+0

Tuyệt vời. Vui mừng nó đã làm việc cho bạn. –

Các vấn đề liên quan