Tôi đã bắt đầu học Groovy và hiện đang xem xét chức năng metaclass. Tôi đã thấy các ví dụ về việc thêm một phương thức mới, và loại bỏ tất cả các phương thức, nhưng không có gì về việc loại bỏ một phương thức duy nhất. Ví dụ:Loại bỏ phương pháp Metaclass đơn
String.metaClass.foo = {delegate.toUpperCase()}
String.metaClass.bar = {delegate.toLowerCase()}
với các tác dụng phụ rõ ràng. Bây giờ tôi đã thấy rằng bạn có thể nói
String.metaClass = null
Để xóa tất cả các phương pháp. Tôi mong chờ người ta có thể nói điều gì đó dọc theo dòng của
String.metaClass.foo = null
để loại bỏ String.foo(), nhưng có String.bar() vẫn, tuy nhiên tuyên bố này dường như không có hiệu lực. Có cách nào để nói phương thức foo() sẽ không còn được định nghĩa nữa, mà không ảnh hưởng đến bar() hay bất kỳ phương thức nào khác được thêm vào?