Java-将谓词转换为字符串

Java-将谓词转换为字符串,java,string,lambda,predicate,Java,String,Lambda,Predicate,我想知道是否有任何方法可以将谓词转换为字符串。例如,将有一个函数: public static <T> String convertPredicate(Predicate<T> objPredicate) { return ?... } 不,通常在Java中是不可能的。人们可能会尝试分析和反编译lambda类的字节码(尽管获取该类的字节码已经是一项非常重要的任务),但这种解决方案将非常复杂和脆弱。lambda的特定运行时表示形式未指定,可能会在不同的Java版本

我想知道是否有任何方法可以将
谓词
转换为
字符串
。例如,将有一个函数:

public static <T> String convertPredicate(Predicate<T> objPredicate) {
    return ?...
}

不,通常在Java中是不可能的。人们可能会尝试分析和反编译lambda类的字节码(尽管获取该类的字节码已经是一项非常重要的任务),但这种解决方案将非常复杂和脆弱。lambda的特定运行时表示形式未指定,可能会在不同的Java版本或不同的JDK供应商中更改。

有些项目使用字节码分析来尝试类似的事情:(1)从Java表达式到SQL,(2)从Java生成JavaScript。然而,这将是一项巨大的工作,因为匿名接口实例是用java生成的。当然,变量名必须是人工的。不,您无法查看和查看lambda及其实现的“内部内容”。
convertPredicate((obj) -> obj.value== 1)