Tôi có rất nhiều mã boilerplate rằng về cơ bản sau mô hình này:Java chú thích cho gói một phương pháp
function doSomething() {
try {
[implementation]
[implementation]
[implementation]
[implementation]
} catch (Exception e) {
MyEnv.getLogger().log(e);
} finally {
genericCleanUpMethod();
}
}
Tôi rất muốn tạo chú thích của riêng tôi để làm sạch mã của tôi lên một chút:
@TryCatchWithLoggingAndCleanUp
function doSomething() {
[implementation]
[implementation]
[implementation]
[implementation]
}
Chữ ký phương thức khác nhau một cách dữ dội (tùy thuộc vào việc thực hiện phương pháp thực tế), nhưng phần thử/catch/bản cuối cùng của lò hơi luôn giống nhau.
Chú thích tôi lưu ý sẽ tự động bao bọc nội dung của phương thức được chú thích với toàn bộ số try...catch...finally
hoopla.
Tôi đã tìm kiếm cao và thấp một cách đơn giản để thực hiện việc này nhưng không tìm thấy gì. Tôi không biết, có lẽ tôi không thể nhìn thấy khu rừng cho tất cả các cây được chú thích.
Bất kỳ con trỏ nào về cách tôi có thể triển khai chú thích như vậy sẽ được đánh giá cao.
Dường như với tôi chú thích sẽ không cần thiết cho việc này; bạn có thể chỉ cần truyền các hiện thực xác định 'implementationOfDoSomething()' và (tùy chọn, có lẽ) 'genericCleanUpMethod()' làm đối số cho 'doSomething()', gọi chúng trong 'try/catch/finally', và sau đó chỉ cần gọi' doSomething() 'bất cứ khi nào bạn cần logic boilerplate? –
Câu trả lời của bạn nằm trong AOP, bạn đã nghiên cứu về điều này chưa? – smp7d
Sự hiểu biết của tôi là anh ta có cùng một thử/bắt/cuối cùng trên nhiều phương pháp. Vì vậy, không chỉ có một doSomething đơn lẻ, nhưng giống như doSomething1, doSomething2, ... tất cả cùng với try/catch/cuối cùng mà anh ta muốn giải nén vào chú thích – jeff