在C ++代码的java中有什么等价物:
#define printVar(var) cout<<#var<<"="<<var;
打印字符串值及其名称。
答案 0 :(得分:4)
您可以打印自Java 8版本以来的变量名称:Java Reflection: How to get the name of a variable?
您可以使用以下内容打印值:System.out.println(String.valueOf(var));
通过Java reflection,您可以从变量中获取更多信息,例如类名,包名,类属性等......
答案 1 :(得分:2)
在Java中没有预处理器指令,所以在这种情况下没有选项,除了使用IDE的快捷方式(通常是&#34; soutv + tab&#34;例如,这可以在InteliJ IDEA和Netbeans中使用。因此,您将获得默认模板的输出:
System.out.println("var = " + var);
或者您可以实现执行此操作的常用方法:
void printVariable (Object variable, String name) {
System.out.println (name + " = " + variable);
}
以这种方式运行:
printVariable (var, "var");
printVariable (anotherVar, "anotherVar");
更新:根据this answer,在Java 8 中可能有通过反射(在某些情况下)这样做的方式
答案 2 :(得分:2)
Java没有标准的预处理器来执行此操作。一般来说这是件好事。在这种情况下,您可以使用自己的。
我建议您在IDE中使用调试器来调试程序,这样就无需编写代码将这些调试语句转储到控制台。注意:在Java中,使代码始终可调试并且大多数代码随附调试都没有什么损失。
如果断点一行,您可以看到局部变量的所有值以及它们指向的对象。如果需要,您也可以在堆栈中查看所有呼叫者。
答案 3 :(得分:0)
通常您没有Java的预处理。但类似的行为方法是:
public static void printVar(String var) {
System.out.print("var=", var);
}