我想创建一个java Printwriter对象,我的程序中的任何方法都可以使用它。我尝试在任何方法之外创建一个静态Printwriter对象(如果我在方法内部创建它,它只能在该方法中使用),但是,为了创建Printwriter对象,我需要在其中抛出一个IOException方法头,如果我没有在方法中创建对象,则没有任何方法头可以抛出异常。我已经尝试使用谷歌搜索50亿次,所以如果有人可以提供帮助,那就太棒了。谢谢!
答案 0 :(得分:0)
这应该有效:
public class WriterHolder {
public final static PrintWriter GLOBAL_WRITER = createWriter();
private static PrintWriter createWriter() throws IOException {
... create and return that writer
你知道 - 声明你的方法可以抛出异常只是表明可能在运行时发生。这并不能阻止你简单地调用那个方法?!当然,问题是:当在运行时抛出异常时,程序将立即失败。但鉴于这个编写器对象似乎对你的代码如此重要,这似乎是正确的事情。
但请注意:通过共享对象引入此类全局状态被视为错误练习。我宁愿建议退后一步,试图找到一个不会对你造成这种后果的设计。