创建可由程序中的任何方法调用的 PrintWriter 对象
Creating a PrintWriter object that can be called upon by any method in the program
我想创建一个 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 对象似乎对您的代码如此重要,这似乎是正确的做法。
但还要注意:通过共享对象引入这样的全局状态被认为是不好的做法。我宁愿建议退后一步,尝试找到一种不会对您造成此类后果的设计。
我想创建一个 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 对象似乎对您的代码如此重要,这似乎是正确的做法。
但还要注意:通过共享对象引入这样的全局状态被认为是不好的做法。我宁愿建议退后一步,尝试找到一种不会对您造成此类后果的设计。