我们有一个巨大的(旧的旧
Java)代码库,其中许多文件(大约5k)都有System.out.println.我们计划将其删除,以进行清理/演示.我们如何编写一个脚本来代替它们,而不会在代码中引入任何问题?脚本不能盲目删除它们,因为以下情况可能是一个问题:
if () some.code... else System.out.println(...); DB.close();
我正在考虑用’;’替换它们.这将照顾上述情况.你看到其他问题吗?任何其他建议?
解决方法
你有没有考虑这个傻事:
System.out.println(" Print " + object.changeState() );
我不认为这是发生的,但是println可能执行一个实际执行系统所依赖的一些操作的方法,并且可能会引入微妙的错误(相信我或不相信,但是我目睹了这一点)
可能会用记录器替代并禁用记录器.
或使用NullObject模式创建一个空对象:
public final class DevNull { public final static PrintStream out = new PrintStream(new OutputStream() { public void close() {} public void flush() {} public void write(byte[] b) {} public void write(byte[] b,int off,int len) {} public void write(int b) {} } ); }
并替换
System.out.println();
同
DevNull.out.println();