Java打印字符串的C++等效方法

6

在Java中,以下代码将与C++代码相同:

#define printVar(var) cout<<#var<<"="<<var;

打印字符串的值及其名称。

4个回答

4
自Java 8版本以来,您可以打印变量名称:Java反射:如何获取变量的名称? 您可以使用以下内容打印值:System.out.println(String.valueOf(var)); 通过Java反射,您可以从变量中获取更多信息,例如类名、包名、类属性等...

2

在Java中没有预处理器指令,所以在这种情况下,除了使用IDE的快捷方式(通常是“soutv + tab”,例如在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");

更新:根据此答案,在Java 8中可能有一种方法通过反射来实现(在某些情况下)


下投票有什么意义? - Dmitry Ginzburg
我很喜欢你的代码,没有问题,加一,享受吧 :) - MCHAppy

2

Java没有标准的预处理器来实现这个功能,一般来说这是一件好事。在这种情况下,您可以使用自己的预处理器。

我建议您使用IDE中的调试器来调试程序,这样就避免了编写代码将调试语句转储到控制台的需要。注意:在Java中,使您的代码始终可调试的代价很小,大多数代码都会启用调试模式。

如果您断点某一行,您可以看到所有本地变量的值以及它们所指向的任何对象。您还可以深入堆栈并查看所有调用者(如果需要)。


0
通常情况下,Java 不需要预处理。但是一种类似的行为方法是:
public static void printVar(String var) {
    System.out.print("var=", var);
}

2
你需要为每个变量实现这种方法,因为通常情况下,这种输出是需要用于多个变量的。 - Dmitry Ginzburg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接