2016-04-26 10 views
0

私は静的な最終変数を持つクラスを持っています。ブート時に最初に参照されたときではなく、初期化する必要があります。目的に役立つ空の静的init()メソッドをクラスに含めることはできますか?クラス内の空のinitメソッドは、静的な最終変数を初期化できますか?

public class ABC { 
    private static final SomeObject abc = new SomeObject(); 
    //other methods and variables 
    public static void init(){ 
    //empty method 
    } 
} 

public class DEF{ 
    public class static void main(String[] args) { 
    ABC.init(); 
    } 
} 
+2

は '私は、彼らがいないときには、ブートアップ時に、それをintializeする最初のreferenced'をしたい - 静的メンバーは、彼らが最初に参照されていないとき、クラスがロードされるときに初期化されます。それで、実際には、それは違いを生むべきではありません。正確に何を達成したいですか?そして、「起動時間」はどういう意味ですか? –

答えて

1

あなたは、静的なブロックを使用し、そこにそれを初期化することができます。 init()メソッドを使用すると、オブジェクトを作成するたびにメソッドが初期化される可能性があります。

public class ABC { 
    private static final SomeObject abc = new SomeObject(); 
    //other methods and variables 
    static{ 
     //initialization code. 
    } 

} 

public class DEF{ 
    public class static void main(String[] args) { 
ABC a =new ABC(); 

    } 
} 
関連する問題