내 프로그램의 모든 메소드에서 사용할 수있는 Java Printwriter 객체를 만들고 싶습니다. 어떤 방법을 사용하지 않고 정적 Printwriter 객체를 만들려고했는데 (메서드 내부에서 만들면 그 메서드 내에서만 사용할 수 있음), Printwriter 객체를 만들려면 IOException을 내부에 던져야합니다. 메서드 헤드 및 메서드 내부에 개체를 만들지 않으면 예외를 throw 할 메서드 헤드가 없습니다. 나는 50 억 번이나 할 수있는 방법을 찾기 위해 노력했다. 그래서 누군가가 도울 수 있다면, 좋을 것이다. 고맙습니다!프로그램의 모든 메소드에서 호출 할 수있는 PrintWriter 객체 만들기
-2
A
답변
0
이 작동합니다 :
당신이 볼public class WriterHolder {
public final static PrintWriter GLOBAL_WRITER = createWriter();
private static PrintWriter createWriter() throws IOException {
... create and return that writer
은 - 당신의 방법 가 예외를 던질 수 있음을 선언하면이 이 런타임시에 발생할 수 있음을 단지 나타냅니다. 그 방법을 단순히 호출하는 것을 막지는 않습니까?! 물론, 문제는 런타임에 예외가 발생하면 프로그램이 즉시 실패한다는 것입니다. 하지만이 작성기 객체가 코드에 너무 중요해 보이는 점을 감안할 때 옳은 일처럼 보입니다. 또한
그러나주의 : 나쁜 사례로 간주되는 공유 객체를 통해 같은 전역 상태를 소개합니다. 차라리 뒤로 물러나서 그런 결과를주지 않는 디자인을 찾으려고하는 것이 좋습니다.
createWriter가 정적이어야하며 예외를 catch하는 것처럼 보입니다. 하지만 그래, 그렇게 작가를 공유하는 것은 나쁜 생각이다. –
고마워요. – GhostCat