2016-09-22 2 views
-3

Так что я знаю, чтобы объявить и инициализировать глобальную переменную можно было бы сделать что-то вроде этого, например:инициализация глобальной буферизации изображения (Java)

public static int Variable = 2; 

Но я хочу знать, если есть способ для инициализации глобальную переменную BufferedImage с изображением из файла. Я не могу использовать вышеуказанный код, так как мне также нужно включить оператор try/catch.

У кого-нибудь есть решения для моей проблемы?

+0

Использовать [статические инициализаторы] (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); 
     } 
    } 

Btw, как уже упоминалось в первом комментарии ниже, это действительно плохая практика. Обычно вы хотите использовать статический метод Read, и вы читаете изображение там, где оно вам нужно, а не по умолчанию.

+1

Почему бы просто не использовать статический метод? Во всяком случае, выполнение ввода-вывода при статической инициализации - это плохая практика, и ее следует избегать. Я не буду ниспровергать, поскольку это то, о чем попросил ОП, но .. На самом деле, не делай этого. :-) – haraldK

+0

Я СОГЛАСИВАЮСЬ, и я НЕ ДЕЛАЮ этого, я просто ответил на вопрос. Я использую статический метод, который читает изображение, когда мне это нужно. В его случае он хочет сделать это по умолчанию. Я отредактировал свой ответ, чтобы уточнить его. – FiReTiTi

Смежные вопросы