2016-09-22 3 views
-3

を初期化するので、私は1つは、例えば、このような何かをしなければならないグローバル変数を宣言して初期化するために知っている:グローバルバッファリングされた画像(Java)の

public static int Variable = 2; 

をしかし、私は初期化する方法があるかどうかを知りたいですファイルからのイメージを持つグローバルなBufferedImage変数。上記のコードは使用できません。try/catchステートメントも含める必要があるためです。

誰かが私の問題の解決策をお持ちですか?

+0

[static initializers](http://stackoverflow.com/questions/335311/static-initializer-in-java) –

答えて

0

ブロックstaticを使用したいと思います。下記の最初のコメントで述べたようにところで

public static BufferedImage image = null ; 

static 
    { 
    try { 
     image = javax.imageio.ImageIO.read(new File("Image path")) ; // Or whatever reader you use. 
     } 
    catch (IOException ex) 
     { 
     Logger.getLogger(Prototyper.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

これは本当に悪い習慣です。通常、静的メソッドを使用し、必要な場所でイメージを読み込みます。既定ではありません。

+1

静的メソッドを使用するだけではどうですか?とにかく、静的初期化でI/Oを行うのは悪い習慣であり、避けるべきです。私はそれがOPが求めているように、downvoteしませんが、本当に、これをしないでください。 :-) – haraldK

+0

私は同意すると私はどちらかをしないで、私はちょうど質問に答えた。私はそれが必要なときにイメージを読む静的メソッドを使用します。彼の場合、彼はデフォルトでそれをやりたいと思っています。私は正確な答えを編集しました。 – FiReTiTi

関連する問題