© Copyright 2018 Contributors. All rights reserved.
The full list of resolved issues in 1.9.3 is available here
Release info: 1.9.3 available 4-Apr-2019
AspectJ 1.9.3 supports Java12. Java12 introduces the new switch
expression syntax, but you must activate support for that via an
--enable-preview
flag when using the compiler and attempting to run the
resultant classes: Here is Switch3.java
:
public class Switch3 {
public static void main(String[] argv) {
System.out.println(one(Color.R));
System.out.println(one(Color.G));
System.out.println(one(Color.B));
System.out.println(one(Color.Y));
}
public static int one(Color color) {
int result = switch(color) {
case R -> foo(0);
case G -> foo(1);
case B -> foo(2);
default -> foo(3);
};
return result;
}
public static final int foo(int i) {
return i+1;
}
}
enum Color {
R, G, B, Y;
}
aspect X {
int around(): call(* foo(..)) {
return proceed()*3;
}
}
Compile it with:
$ ajc --enable-preview -showWeaveInfo -12 Switch3.java
Join point 'method-call(int Switch3.foo(int))' in Type 'Switch3' (Switch3.java:12) advised by around advice from 'X' (Switch3.java:30)
Join point 'method-call(int Switch3.foo(int))' in Type 'Switch3' (Switch3.java:13) advised by around advice from 'X' (Switch3.java:30)
Join point 'method-call(int Switch3.foo(int))' in Type 'Switch3' (Switch3.java:14) advised by around advice from 'X' (Switch3.java:30)
Join point 'method-call(int Switch3.foo(int))' in Type 'Switch3' (Switch3.java:15) advised by around advice from 'X' (Switch3.java:30)
Now run it:
$ java --enable-preview Switch3
3
6
9
12