编辑:我很想阅读对史蒂夫·里德(Steve Reed)的AOP方法的 react 。鼓励评论他的答案!

我是一个新手,有时我意识到在程序执行过程中了解变量的内容会有所帮助。所以我开始这样做:

编辑:解决了这个问题。过去是:var +“:” + var,这是完全错误的。愚蠢的错字。

System.err.println ( "var: " + var );

后来我知道这是很普遍的做法。至少在调试器不可用或不需要的地方。

我使用基本的文本编辑器,每次需要调试变量时都要键入print语句,这很烦人,所以我想,为什么不这样:
void dbug ( Object obj )
{
    String variableName = obj.somehowGetVariableName();
    String variableContents = obj.toString();
    System.out.println ( variableName +": " + variableContents );
}

但是,显然获得变量名称说起来容易做起来难。

java-reflection-how-to-get-the-name-of-a-variable

我是否坚持:
System.err.println ( "var: " + var );

还是有一个流行的速记版本?

最佳答案

我不会尝试围绕打印出调试信息编写任何奇特的方法。如果使用记录器,则坚持使用LOG.debug(...),否则使用System.err.println(...)

您可能希望使用String.format("var=%s val=%s", "VarName", val)而不是String串联。

确保在每个类中重写toString方法以提供有意义的调试信息。

在一天结束时,通常更容易启动调试器并查看发生了什么,而不必跟踪已记录的调试行的负载。

我唯一使用您的调试方法的时间是,如果我的应用程序维护了映射内的所有状态,那么我可以轻松地打印出键值对(例如Web应用程序中的 session 映射)。

09-30 17:04
查看更多