【问题标题】:Java print string C++ equivalent [duplicate]Java打印字符串C ++等效[重复]
【发布时间】:2014-05-19 12:40:04
【问题描述】:

C++ 代码在 java 中的等价物是什么:

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

打印字符串值及其名称。

【问题讨论】:

    标签: java c++ string


    【解决方案1】:

    从Java 8版本开始可以打印变量名:Java Reflection: How to get the name of a variable?

    您可以使用类似的方式打印值:System.out.println(String.valueOf(var));

    通过Java reflection可以从一个变量中获取更多的信息,比如类名、包名、类属性等...

    【讨论】:

      【解决方案2】:

      Java 没有执行此操作的标准预处理器。一般来说,这是一件好事。在这种情况下,您可以使用您自己的。

      我建议您使用 IDE 中的调试器来调试您的程序,这样就无需编写代码将此类调试语句转储到控制台。注意:在 Java 中,使您的代码始终可调试几乎不会受到任何惩罚,并且大多数代码都带有调试功能。

      如果你对一行进行断点,你可以看到局部变量的所有值以及它们指向的任何对象。如果需要,您还可以向下堆栈并查看所有调用者。

      【讨论】:

        【解决方案3】:

        在 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");
        

        更新:根据this answer,在 Java 8 中可能有一种方法可以通过反射(在某些情况下)

        【讨论】:

        • 投反对票的目的是什么?
        • 我很喜欢你的代码,没有问题,+1 享受 :)
        【解决方案4】:

        通常您没有针对 Java 的预处理。但类似的行为方法是:

        public static void printVar(String var) {
            System.out.print("var=", var);
        }
        

        【讨论】:

        • 你必须对每个变量都实现这种方法,因为通常一些变量需要这个输出。
        猜你喜欢
        • 2015-05-24
        • 2018-11-07
        • 2017-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多