2011-04-18 39 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