2016-09-22 3 views
-3

는 그래서 예를 들어 이런 식으로 뭔가를해야 할 것입니다 선언하고 전역 변수를 초기화 알고초기화 글로벌 버퍼 이미지 (자바)

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, 이 정말 나쁜 관행입니다. 일반적으로 읽기 정적 메서드를 사용하려는 경우 기본적으로 필요하지 않은 이미지를 읽습니다.

+1

왜 정적 메서드를 사용하지 않는 것이 좋습니까? 어쨌든 정적 초기화에서 I/O를 수행하는 것은 좋지 않으므로 피해야합니다. 나는 OP가 요구 한대로 downvote하지 않을 것이다. 그러나.. 정말로, 이것을하지 마라. :-) – haraldK

+0

나는 동의하고 어느 쪽도하지 않는다. 나는 방금 질문에 대답했다. 필자는 필요할 때 이미지를 읽는 정적 메서드를 사용합니다. 그의 경우, 그는 기본적으로 그것을하고 싶어합니다. 정확한 답변을 편집했습니다. – FiReTiTi