gpt4 book ai didi

java - 从 java.util.function.Function 获取方法名称

转载 作者:行者123 更新时间:2023-11-29 07:28:11 24 4
gpt4 key购买 nike

是否可以获取 java.util.function.Function 的方法名称。我想每次记录正在使用的方法的名称。以下示例打印了 Lambda 对象,但我还没有找到获取方法名称的简单方法:

public class Example {

public static void main(String[] args) {
Example ex = new Example();
ex.callService(Integer::getInteger, "123");
}

private Integer callService(Function<String, Integer> sampleMethod, String input) {
Integer output = sampleMethod.apply(input);
System.out.println("Calling method "+ sampleMethod);
return output;
}
}

最佳答案

在传递方法引用时,您必须考虑您实际上在做什么。因为:

Integer::getInteger

与此几乎相同(下面的方法有一个堆栈层):

s -> Integer.getInteger(s)

上面又类似于下面的:

new Function<String, Integer> {
@Override
public Integer apply(String s){
return Integer.getInteger(s);
}
}

在最后一个片段中,您清楚地看到与被调用方法 Integer#getInteger(String) 没有逻辑联系。这解释了为什么不引入新的东西就不可能按照你的意图去做。

关于java - 从 java.util.function.Function 获取方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47312142/

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