Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import org.aspectj.lang.annotation.*;
  2. import java.lang.annotation.*;
  3. import java.lang.reflect.*;
  4. @Aspect("perthis(transactional())")
  5. public class Code {
  6. @Pointcut("execution(@Transactional * * (..))")
  7. public void transactional() { }
  8. public static void main(String[] args) {
  9. print(AAA.class);
  10. print(BBB.class);
  11. print(CCC.class);
  12. }
  13. public static void print(Class clazz) {
  14. System.out.println(clazz.getName());
  15. Class[] ifs = clazz.getInterfaces();
  16. if (ifs!=null) {
  17. for (int i=0;i<ifs.length;i++) {
  18. System.out.println(ifs[i]);
  19. }
  20. }
  21. Field[] fs = clazz.getDeclaredFields();
  22. if (fs!=null) {
  23. for (int i=0;i<fs.length;i++) {
  24. System.out.println(fs[i]);
  25. }
  26. }
  27. }
  28. }
  29. class AAA {
  30. public void m() { }
  31. }
  32. class BBB {
  33. public void m() { }
  34. }
  35. class CCC {
  36. @Transactional
  37. public void m() { }
  38. }
  39. @Retention(RetentionPolicy.RUNTIME) @interface Transactional {}