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

Posted

技术标签:

【中文标题】能否像在 Javascript 中将函数转换为字符串一样,将方法转换为 Java 中的字符串?【英文标题】:Can you convert a method to a string in Java in the same way you can convert a function to a string in Javascript? 【发布时间】:2019-06-20 09:09:48 【问题描述】:

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 语言中可行吗?

【问题讨论】:

我不太了解 JavaScript,但我认为答案是否定的。 Java 只是不支持像这样复制代码。这是一个更传统的模型,所有方法在执行前都经过预编译。 是的,Java 或其他编译语言不可能,因为代码转换为字节码或机器码 【参考方案1】:

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

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

【讨论】:

以上是关于能否像在 Javascript 中将函数转换为字符串一样,将方法转换为 Java 中的字符串?的主要内容,如果未能解决你的问题,请参考以下文章

在javascript中将字符串转换为布尔值[重复]

在javascript中将iso日期转换为毫秒

无法在JavaScript中将String BST日期格式转换为UTC

如何在javascript的引导数据表中将参数字符串转换为列或已知对象

如何在javascript中将字符串转换为文件对象?

JavaScript 在Javascript中将字符串转换为数字