java consumer_java-8 – 方法参考 – 使用Consumer参数将Function传递给方法

编程知识 行业动态 更新时间:2024-06-13 00:22:04

我正在学习

Java 8中的方法参考,我很难理解为什么这有效?

class Holder {

private String holded;

public Holder(String holded) {

this.holded = holded;

}

public String getHolded() {

return holded;

}

}

private void run() {

Function getHolded = Holder::getHolded;

consume(Holder::getHolded); //This is correct...

consume(getHolded); //...but this is not

}

private void consume(Consumer consumer) {

consumer.accept(null);

}

正如您在run方法中看到的那样–Holder :: getHolded返回未绑定的方法引用,您可以通过将Holder类型的对象作为参数传递来调用它.像这样:getHolded.apply(持有人)

但是当它直接作为方法参数调用时,它为什么会将这个未绑定的方法引用强制转换为Consumer,而当我明确地传递Function时它不会这样做?

更多推荐

java consumer_java-8 – 方法参考 – 使用Consumer参数将Function传递给方法

本文发布于:2023-04-01 16:31:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/8d015cff4343cc230b3a1756b1f7240b.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:方法   参数   consumer_java   java   Consumer

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!