2016-11-04 5 views
-2

내 프로그램의 모든 메소드에서 사용할 수있는 Java Printwriter 객체를 만들고 싶습니다. 어떤 방법을 사용하지 않고 정적 Printwriter 객체를 만들려고했는데 (메서드 내부에서 만들면 그 메서드 내에서만 사용할 수 있음), Printwriter 객체를 만들려면 IOException을 내부에 던져야합니다. 메서드 헤드 및 메서드 내부에 개체를 만들지 않으면 예외를 throw 할 메서드 헤드가 없습니다. 나는 50 억 번이나 할 수있는 방법을 찾기 위해 노력했다. 그래서 누군가가 도울 수 있다면, 좋을 것이다. 고맙습니다!프로그램의 모든 메소드에서 호출 할 수있는 PrintWriter 객체 만들기

답변

0

이 작동합니다 :

당신이 볼
public class WriterHolder { 

    public final static PrintWriter GLOBAL_WRITER = createWriter(); 

    private static PrintWriter createWriter() throws IOException { 
    ... create and return that writer 

은 - 당신의 방법 예외를 던질 수 있음을 선언하면이 런타임시에 발생할 수 있음을 단지 나타냅니다. 그 방법을 단순히 호출하는 것을 막지는 않습니까?! 물론, 문제는 런타임에 예외가 발생하면 프로그램이 즉시 실패한다는 것입니다. 하지만이 작성기 객체가 코드에 너무 중요해 보이는 점을 감안할 때 옳은 일처럼 보입니다. 또한

그러나주의 : 나쁜 사례로 간주되는 공유 객체를 통해 같은 전역 상태를 소개합니다. 차라리 뒤로 물러나서 그런 결과를주지 않는 디자인을 찾으려고하는 것이 좋습니다.

+0

createWriter가 정적이어야하며 예외를 catch하는 것처럼 보입니다. 하지만 그래, 그렇게 작가를 공유하는 것은 나쁜 생각이다. –

+0

고마워요. – GhostCat