在运行时检索源代码

时间:2015-02-27 16:47:05

标签: java

我希望在运行时将java代码打印到控制台。我并不期望完全相同的代码,而是存在的逻辑。

鉴于以下内容:

Predicate<String> predicate = (s) -> s.equals("yes");

我想打电话:

String javaCode = getCodeString(predicate);

javaCode逻辑上等于:(s) -> s.equals(\"yes\")")

这可能吗?

1 个答案:

答案 0 :(得分:0)

不容易。即使您的应用程序可以使用源代码,也无法在所描述的上下文中执行此操作。从理论上讲,可以使源代码可用(或嵌入在JAR中)。然后理论上如果你知道行号,你就可以得到源代码。但是,要知道行号,必须抛出异常。使用lambdas会使这更加复杂。如果你想开始阅读字节代码,你可能会做类似的事情,但你提出的要求非常复杂。