123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
- <html> <head>
- <title>AspectJ 1.9.3 Readme</title>
- <style type="text/css">
- <!--
- P { margin-left: 20px; }
- PRE { margin-left: 20px; }
- LI { margin-left: 20px; }
- H4 { margin-left: 20px; }
- H3 { margin-left: 10px; }
- -->
- </style>
- </head>
-
- <body>
- <div align="right"><small>
- © Copyright 2018 Contributors.
- All rights reserved.
- </small></div>
- <p>The full list of resolved issues in 1.9.3 is available
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&f0=OP&f1=OP&f3=CP&f4=CP&j1=OR&list_id=16866879&product=AspectJ&query_format=advanced&target_milestone=1.9.3">here</a></h2>.</p>
-
- <p>AspectJ 1.9.3 supports Java12. Java12 introduces the new switch expression syntax, but you must activate support for that via
- an <tt>--enable-preview</tt> flag when using the compiler and attempting to run the resultant classes:
-
- Here is <tt>Switch3.java</tt>:
- <pre><code>
- =========8<=========
- 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;
- }
- }
- =========8<=========
- </code></pre>
-
- Compile it with:
- <pre><code>
- $ 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)
-
- </code></pre>
-
- Now run it:
- <pre><code>
- $ java --enable-preview Switch3
- 3
- 6
- 9
- 12
- </code></pre>
-
-
-
- <p>Available: 1.9.3.RC1 available 7-Mar-2019</p>
-
- <br><br>
-
-
- <!-- ============================== -->
- </body>
- </html>
|