在Java中,你能否像在Javascript中将函数转换为字符串一样将方法转换为字符串?

3
在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语言中是否可能?

3
我不太了解JavaScript,但我认为答案是否定的。Java并不支持像这样复制代码。Java是一种更传统的模型,在执行之前所有方法都会被预编译。 - markspace
4
是的,使用Java或其他编译语言不可能实现,因为代码会被转换成字节码或机器码。 - Renziera
1个回答

0
在Java中,代码被编译成字节码,然后JVM解释执行,所以你不能在方法内部打印代码。
如果你想传递一个方法引用,你可以在Java 8中实现。 如果你想打印当前方法的名称,你可以使用类似getEnclosingMethod()这样的方法,或者根据需要获取当前堆栈跟踪信息。

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