Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

Simple.java 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package pcds;
  2. import org.aspectj.testing.Tester;
  3. public class Simple {
  4. public static void main(String[] args) {
  5. C c = new C();
  6. c.m("hi");
  7. C subc = new SubC();
  8. subc.m("hi");
  9. subc.m(new Integer(1));
  10. SubC subc1 = new SubC();
  11. subc1.m("bye");
  12. subc.hashCode();
  13. }
  14. }
  15. class C {
  16. void m(Object o) {
  17. System.out.println("C.m(" + o + ")");
  18. }
  19. static pointcut meths(C c): call(void m(Object)) && target(c);
  20. }
  21. class SubC extends C {
  22. SubC(int x) {
  23. System.out.println("x: " + x);
  24. }
  25. SubC(String s) {
  26. this(2*2);
  27. System.out.println("s: " + s);
  28. int x = 10;
  29. }
  30. SubC() {
  31. this("hi");
  32. System.out.println("no args");
  33. }
  34. }
  35. aspect A {
  36. before(Object o): C.meths(o) {
  37. System.out.println("static named pointcut");
  38. }
  39. before(): call(void m(..)) && target(SubC) && args(String) {
  40. System.out.println("dmatches: " + thisJoinPoint);
  41. }
  42. before(): call(void SubC.m(String)) {
  43. System.out.println("!smatches: " + thisJoinPoint);
  44. }
  45. before(Object o, String s): call(void C.m(Object)) && target(SubC) && args(s) && args(o) {
  46. System.out.println("smatches: " + thisJoinPoint +", " + s +", " + o);
  47. }
  48. before(): initialization(SubC.new(..)) {
  49. System.out.println(thisJoinPoint + "new SubC");
  50. }
  51. void around(): initialization(SubC.new(..)) {
  52. proceed();
  53. }
  54. before(): execution(SubC.new(..)) {
  55. System.out.println(thisJoinPoint + "new SubC");
  56. }
  57. before(): call(int Object.hashCode()) {
  58. System.out.println("hashCode()");
  59. }
  60. before(): call(int Object.hashCode()) && target(C) {
  61. System.out.println("hashCode() on C");
  62. }
  63. }