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

时间:2017-11-15 16:08:10

标签: java lambda java-8

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

{{1}}

1 个答案:

答案 0 :(得分:5)

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

Integer::getInteger

几乎相同(在下面的方法中有更多的堆叠层):

s -> Integer.getInteger(s)

以上再次类似于以下内容:

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

在最后一个片段中,您清楚地看到与被调用方法Integer#getInteger(String)没有逻辑连接。这解释了为什么在不引入新内容的情况下不可能做到你想做的事情。