能否像在 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中将String BST日期格式转换为UTC