java - 如何在Java中进行字符串化

标签 java c++ string macros

在 C++ 中我们可以使用宏

#define check_and_log_warning(x) if (!(x)) {log_error(#x); cout<<__LINE__;}

我想获取 boolean 表达式的值并将其用作字符串。 在宏中获取行号将会带来额外的好处。

像这样的宏可以用 Java 编写吗? 我最近从 c/c++ 转向 java,所以我想知道这样的事情可以在没有宏的情况下在 c++ 中完成吗?

最佳答案

预处理器是我在 Java 中怀念 C/C++ 的东西。有很多方法...,但它们是 Java 方法。

1/断言: http://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html

2/日志: 我用的是https://commons.apache.org/proper/commons-logging/

(通过 log4J 或任何你想要的)

要打印日志消息中的行号,您可以使用以下命令: int lineNo = Thread.currentThread().getStackTrace()[2].getLineNumber();

编辑: 请注意:与 C++ 中的 __LINE__ 不同,获取堆栈跟踪会导致性能损失。友善点:)

关于java - 如何在Java中进行字符串化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32967557/

相关文章:

java - 构造函数调用必须是构造函数中的第一条语句

java - 在访问游标中的数据之前,请确保游标已正确初始化。 sql 安卓

java - 显示非英语垃圾字符的 jsp 页面

Javascript string.split 在冒号字符处并添加换行符

java - 循环多个扫描仪输入直到特定输入

c++ - 我可以在 HWND 上设置标签吗?

c++ - 为什么我必须通过this指针访问模板基类成员?

c++ - 使用矩阵、欧拉角和/或四元数进行旋转表示的优缺点是什么?

string - 为什么我的C程序打印这样?我不明白字符串是如何工作的吗?

C 循环遍历一个小数组并添加到一个大数组