2011-04-18 51 views

回答

0

AOP可能是这个问题的矫枉过正。您可能想要尝试的是将每个静态方法委派给另一个类,并将初始化代码添加到该类的构造函数中。像这样:

class StaticClass { 
    public static void m1() { 
     new Worker().m1(); 
    } 
    public static void m2() { 
     new Worker().m2(); 
    } 
} 

class Worker { 
    public Worker() { 
    intialize(); 
    } 
    public void m1() { 
    // Real m1 work 
    } 
    public void m2() { 
    // Real m2 work 
    } 
} 

这atleast解决了忘记投入到init代码的问题。

也就是说,这看起来像:https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem

你能退一步,告诉我们你为什么需要这个?

0

Java has static initialization blocks。像这样的:

public class SomeClass { 
    static { 
     // Your code here 
    } 
} 
+0

静态构造函数将被调用一次,我想每次调用构造函数时调用该方法。 – Gainster 2011-04-18 03:42:39

+0

然后你可能想要AspectJ(http://www.eclipse.org/aspectj/)的一些东西,尽管我不知道它是否可以用于静态方法。 – 2011-04-18 03:44:10