Có cách nào mà tôi có thể có một phương thức trong một lớp được thực thi mỗi khi bất kỳ phương thức nào của lớp đó được gọi.Gọi phương thức trước khi bất kỳ lời gọi phương thức nào của lớp đó trong Java
tôi sẽ cung cấp một tóm tắt kịch bản của tôi ở đây:
Class Util{
private isConnected(){
if(!xxxapi.connected())
throw new MyException(....)
}
public createFile(){....}
public removeFile(){....}
}
Vì vậy, bất cứ lúc nào tôi gọi new Util.createFile()
Tôi muốn điều đó isConnected() được gọi trước khi createFile()
thực sự bắt đầu. Rõ ràng là Tôi có thể gọi isConnected()
mọi lúc khi bắt đầu từng phương pháp, nhưng tôi đã tự hỏi liệu tôi có thể có giải pháp khác hay không.
Có đề xuất/giải pháp nào khác cho tình huống như vậy không.
Bạn có lẽ nên tìm hiểu apis phản ánh. Sử dụng sự phản chiếu bạn có thể đạt được điều này. Nếu bạn không được sử dụng framework, có lẽ bạn có thể xem xét Spring AOP trong trường hợp sử dụng của bạn. – sakura
Bạn có thể sử dụng AOP nhưng trừ khi bạn muốn gọi phương thức đó ở phương thức _every_ bắt đầu, bạn có thể không nhận được nhiều điều đó (về hiệu suất của nhà phát triển). – Thomas
Tôi nghĩ bạn nên nhìn vào chú thích cho một giải pháp thanh lịch hơn – BigMike