1) I have a java class A with has no fields
class A {
}
2) I use an aspect to introduce a field called f into A
aspect X {
public int A.f = 42;
}
3) I can use f in A as if f were hard coded (in the java source) into A.
new version of A:
class A {
public static void main(String []argv) {
A a = new A();
System.out.println(a.f);
a.f=100;
System.out.println(a.f);
}
}
ajc -1.5 A.java X.java
java A
42
100
What makes this work is that the ITD is PUBLIC (public int A.f = 42). You
have to be compiling the system using ajc and not javac.
cheers,
Andy
On 20 September 2013 08:04, Jozsef Hegedus <[email protected]> wrote:
> Hi,
>
> I think it is not possible to do the following with AspectJ but maybe I am
> wrong :
>
> 1) I have a java class A which has no fields.
> 2) I use an aspect to introduce a field called f into A.
> 3) I can use f in A as if f were hard coded (in the java source) into A.
>
> Is this possible ?
> I know it is possible to something similar by providing default
> implementations
> for interfaces but that is not my question (interfaces can only have final
> fields).
>
> Cheers,
>
> Jozsef
> ______________________________**_________________
> aspectj-users mailing list
> [email protected]
> https://dev.eclipse.org/**mailman/listinfo/aspectj-users<https://dev.eclipse.org/mailman/listinfo/aspectj-users>
>
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users