首页 > 解决方案 > 能否像在 Javascript 中将函数转换为字符串一样,在 Java 中将方法转换为字符串?

问题描述

在 javascript 中,如果你想完整地返回一个函数,你可以执行如下代码:

function sum(a, b) {
  return a + b;
}

console.log(sum.toString());
// expected output: "function sum(a, b) {
//                     return a + b;
//                   }"

console.log(Math.abs.toString());
// expected output: "function abs() { [native code] }"

这在 Java 语言中可行吗?

标签: javascriptjavafunctionreturn

解决方案


在 Java 中,代码被编译成字节码,JVM 会解释它,所以你不能在方法中打印代码。

如果你想传递一个方法引用,你可以用 Java 8 来做。如果你想打印你所在的方法的名称,你可以使用类似的东西getEnclosingMethod()或获取当前的堆栈跟踪,这取决于你需要什么。


推荐阅读