gpt4 book ai didi

java - 我如何找出 lambda 适用于哪种方法?

转载 作者:搜寻专家 更新时间:2023-11-01 03:15:25 25 4
gpt4 key购买 nike

<分区>

如果使用 Java Lambda 表达式调用库中的方法,这些通常只是包装的方法调用。是否有可能找出最初是什么方法,只是为了记录目的? (Another question 是关于它适用于什么对象 - 这特别是关于被调用的方法。)

class Foo {
private void doSomething() { ... }

public void doSomethingInTransaction() {
doInTransaction(this::doSomething);
}

private void doInTransaction(Runnable run) { ... }
}

当调用 doSomethingInTransaction() 时,doInTransaction 方法实际上是用一个 Runnable 类型的对象调用的。有时记录此处传递的方法的名称和类(即 Foo.doSomething)以及对象会很好。是否有可能通过反射或诸如此类的东西找出那是什么?如果这需要特定的 Java 版本,那也是一个有趣的答案。

(更新:请注意,这不是相关问题 Java 8 - how to access object and method encapsulated as lambda 的重复,因为我主要询问封装在那里的方法。那里没有被问到。)

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com