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.

OrderOfExtendsPlusAndImplementsPlus.java 980B

12345678910111213141516171819202122232425262728293031323334353637
  1. import org.aspectj.testing.Tester;
  2. public class OrderOfExtendsPlusAndImplementsPlus {
  3. public static void main(String[] args) {
  4. try {
  5. new OrderOfExtendsPlusAndImplementsPlus().realMain(args);
  6. } catch (Throwable t) {
  7. Tester.throwable(t);
  8. }
  9. }
  10. public void realMain(String[] args) throws Exception {
  11. Class[] cs = new Class[]{C.class, D.class};
  12. for (int i = 0; i < cs.length; i++) {
  13. check(cs[i]);
  14. }
  15. }
  16. private void check(Class c) {
  17. Tester.checkEq(c.getInterfaces()[0], I.class,
  18. c + " doesn't implement " + I.class);
  19. Tester.checkEq(c.getSuperclass(), S.class,
  20. c + " doesn't extend " + S.class);
  21. }
  22. }
  23. class S {}
  24. interface I {}
  25. class C {}
  26. class D {}
  27. aspect A {
  28. declare parents: C implements I;
  29. declare parents: C extends S;
  30. }
  31. aspect B {
  32. declare parents: D extends S;
  33. declare parents: D implements I;
  34. }