我正在做我的学术项目,在构建和测试时,我已经放了许多println()语句.
但是,当我不得不提交所有打印时,不应该显示.
我可以实现像侦听器这样的东西,当试图执行System.out时会调用它并阻止它显示.我不知道这个想法有多可行,但只是想知道它是否可能.我知道我本来可以使用日志文件或写入文件但是如果我必须禁用SOP,我只能想到一个想法我怎么能这样做..
谢谢
使用System.setOut函数(和setErr)以下程序只打印1 :(而不是2)
public static void main(String[] args) throws FileNotFoundException {
System.out.println("1");
System.setOut(new PrintStream(new OutputStream() {
@Override
public void write(int arg0) throws IOException {
// TODO Auto-generated method stub
}
}));
System.out.println("2");
}
Run Code Online (Sandbox Code Playgroud)
正确的做法是在printlns之前使用标志,或者更好的是,使用Logger(有许多版本可用).
但是,可以将所有System.out重新路由.搜索"redirect system.out",你会发现很多例子.
| 归档时间: |
|
| 查看次数: |
1527 次 |
| 最近记录: |