2016-09-22 62 views
-3

所以我知道該聲明並初始化一個全局變量,一會又要例如做這樣的事情:初始化全局緩衝圖像(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); 
     } 
    } 

順便說一下,在下面的第一個評論中提及,這是非常糟糕的做法。通常情況下,您希望使用Read靜態方法,並且在需要的地方閱讀圖像,而不是默認閱讀。

+1

爲什麼不只是使用靜態方法?無論如何,在靜態初始化中執行I/O是不好的做法,應該避免。我不會降低,因爲這是OP要求的,但是..真的,不要這樣做。 :-) – haraldK

+0

我同意,我也不這樣做,我只是回答了這個問題。我使用靜態方法在需要時讀取圖像。在他的情況下,他想默認做這件事。我編輯了我的答案,以確保它。 – FiReTiTi