我必须编写使用IDE过多的短代码示例;我用Gedit。出于调试目的,我一直在使用快速方法dbgm
。一些谷歌搜索提出了类似的建议:
import java.util.Scanner;
public class Tyle {
public Tyle() {
}
/**
* @param debugmessage
* This method takes any debugmessage and prints the string version
* to System.err.println
*/
private static void dbgm(Object debugmessage) {
System.err.println(debugmessage.toString());
}
/**
* @param number
*/
public static int cube(int i) {
int cube;
cube=i*i*i;
dbgm(cube); //debug message
return cube;
}
public static void main(String [] args){
System.out.print("Enter number: ");
Scanner s = new Scanner(System.in);
int inp = s.nextInt();
Tyle.cube(inp);
s.close();
}
}
这有其优点,我可以搜索dbgm
,并保留任何真正的System.out.println()
电话。
但是我不确定使用这样的方法是不错的做法,尤其是在调试模式下。我一直在考虑使用类似于泛型的东西,在那里我提供一种类型,而不仅仅指定Object
(它感觉有风险)并依赖于toString()
。
我可以在这个简单的例子中使用assert
,但在用户研究期间可能会有更复杂的情况。例如,如果number
基于用户输入。还有一些情况我试图快速检查一些参数是否给出了预期值。
有没有办法安全地编写dbgm
方法的变体,我可以在其中获取适当的描述符,特别是如果它是一个自定义对象?我想继续在某种“生产”中重复使用这个解决方案。环境。
有正确的方法吗?
答案 0 :(得分:0)
如果您编写的代码示例包含单个java文件,我建议您不要使用dbmg
方法,只需明确使用System.our/System.err
打印方法。使用自定义日志记录抽象可能会使示例代码复杂化不必要的细节。
但是,如果:
然后不要重新发明轮子,使用Logging框架。