Java 创建可由程序中的任何方法调用的PrintWriter对象

Java 创建可由程序中的任何方法调用的PrintWriter对象,java,object,static,printwriter,Java,Object,Static,Printwriter,我想创建一个java Printwriter对象,程序中的任何方法都可以使用它。我尝试在任何方法外创建静态Printwriter对象(如果在方法内创建,则只能在该方法内使用),但是,为了创建Printwriter对象,我需要在方法头内抛出IOException,如果我没有在方法内创建对象,没有任何方法头可以抛出异常。我已经用谷歌搜索了50亿次,如果有人能帮忙,那就太好了。谢谢大家! 这应该有效: public class WriterHolder { public final static

我想创建一个java Printwriter对象,程序中的任何方法都可以使用它。我尝试在任何方法外创建静态Printwriter对象(如果在方法内创建,则只能在该方法内使用),但是,为了创建Printwriter对象,我需要在方法头内抛出IOException,如果我没有在方法内创建对象,没有任何方法头可以抛出异常。我已经用谷歌搜索了50亿次,如果有人能帮忙,那就太好了。谢谢大家!

这应该有效:

public class WriterHolder {

  public final static PrintWriter GLOBAL_WRITER = createWriter();

  private static PrintWriter createWriter() throws IOException {
   ... create and return that writer
您可以看到-声明您的方法可以引发异常只是表明该可能在运行时发生。这并不能阻止你简单地调用那个方法?!当然,问题是:当在运行时抛出异常时,您的程序将立即失败。但是,考虑到这个writer对象对您的代码如此重要,这似乎是正确的做法


但也要注意:通过共享对象引入这样的全局状态被认为是不好的做法。我宁愿建议退一步,试着找到一种不会给你带来这样后果的设计

看起来createWriter应该是静态的,并且可能捕获异常。但是是的,像那样分享作者是个坏主意。