Элемент массива set pointcut. Есть ли обходной путь?

Я только что прочитал, что невозможно определить pointcut для одного элемента массива (ошибка ссылка). Учитывая, что мне действительно нужно обнаружить модификацию элемента массива, я хотел бы знать, есть ли обходной путь для такого рода проблем (шаблон или что-то в этом роде).

Что-то вроде того, что описано в этой статье

public class FieldPointcuts {
     static int ar[];

     public static void main(String[] args) {
         ar = new int[] {100}; //set
         ar[0] = 200; //get
     }
}

и совет

before(int i, Object s, Object[] a):
    arrayset() && args(i, s) && target(a)
{
    System.out.println (" Arrayset:["+i+"/"+(a.length-1)+"] = "+s) ;
}

Заранее спасибо.


person Jack    schedule 04.11.2010    source источник


Ответы (1)


К сожалению, я не могу придумать ничего, что сработает. Лучшее, что я могу придумать, это использовать списки вместо массивов, но если вы вплетаетесь в сторонний код, это будет невозможно.

person Andrew Eisenberg    schedule 05.11.2010