You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AspectInIntroducedMethod.java 926B

1234567891011121314151617181920212223242526272829303132
  1. import org.aspectj.testing.Tester;
  2. public class AspectInIntroducedMethod {
  3. public static void main(String[] args) {
  4. String result = new TargetClass().addMethod();
  5. Tester.check("inner".equals(result),
  6. "\"inner\".equals(\"" + result + "\")");
  7. }
  8. }
  9. aspect A {
  10. class inner {
  11. public String name() { return "inner"; }
  12. }
  13. /** shows A usable in non-introductions */
  14. public String getName() {
  15. new inner();
  16. A a = this;
  17. return a.new inner().name();
  18. }
  19. // NPE at NewInstanceExpr.java:287
  20. /** @testcase qualified new expression using aspect type in method introduction body */
  21. public String TargetClass.addMethod() {
  22. String result = null;
  23. A a = A.aspectOf();
  24. result = a.getName();
  25. result = a.new inner().name(); // bug: remove this to avoid NPE
  26. return result;
  27. }
  28. }
  29. class TargetClass {}