次のコードスニペットでは、プロパティmyList
にアクセスするたびにロジックを実行する必要があります。出来ますか?AspectJを使用してJavaクラスの静的プロパティをインターセプトする方法はありますか?
public class Test {
public static List<String> myList = new ArrayList();
public static void addData(){
myList.add("foo");
myList.add("bar");
}
public static void removeData(){
if(myList.size() > 0){
myList.remove(0);
}
}
public static void displayData(){
for (String data : myList) {
System.out.println("data : "+data);
}
}
public static void main(String[] args) {
addData();
displayData();
removeData();
displayData();
}
}
myListをプライベートにして、すべてのアクセサがクラス内にある場合は、それ以外の場合は、実行時にmyListのメモリアドレスを見つけて、デバッガのようにハードウェアブレークポイントを設定する必要があります。 –
プライベートプロパティで、すべてのアクセサが同じクラスにあるとしましょう。次に、傍受のコードサンプルを手伝ってもらえますか? – ashishakp