Элемент массива set pointcut.Есть ли обходной путь? - PullRequest
1 голос
/ 04 ноября 2010

Я только что прочитал, что невозможно определить 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) ;
}

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

1 Ответ

0 голосов
/ 05 ноября 2010

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

...