Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import org.aspectj.testing.Tester;
  2. import java.util.*;
  3. /** @testcase PR#771 static initializer member name */
  4. public class StaticInitName {
  5. public static void main(String[] args) {
  6. Tester.expectEvent("C");
  7. Tester.event(""+C.class.getName());
  8. Tester.expectEvent("D");
  9. Tester.event(""+D.class.getName());
  10. Tester.checkAllEvents();
  11. }
  12. }
  13. class C {
  14. static int i = 1;
  15. }
  16. class D {
  17. static int i;
  18. static {
  19. i = 2;
  20. }
  21. }
  22. aspect A {
  23. static {
  24. Tester.expectEvent("before");
  25. Tester.expectEvent("before-D");
  26. }
  27. before() : within(C) && !set(* *) {
  28. Tester.event("before");
  29. String memberName = thisJoinPoint.getSignature().getName();
  30. Tester.check("<clinit>".equals(memberName),
  31. "\"<clinit>\".equals(\"" + memberName + "\")");
  32. }
  33. before() : within(D) && !set(* *) {
  34. Tester.event("before-D");
  35. String memberName = thisJoinPoint.getSignature().getName();
  36. Tester.check("<clinit>".equals(memberName),
  37. "\"<clinit>\".equals(\"" + memberName + "\")");
  38. }
  39. }