带参数的方法引用

在Java 8中,具有以下类

 class Person {

private boolean born;

Person() {

}

public void setBornTrue() {

born = true;

}

public void setBorn(boolean state) {

born = state;

}

}

可以通过方法引用来调用setBornTrue方法:

    ArrayList<Person> people = new ArrayList<>();

people.add(new Person());

people.forEach(Person::setBornTrue);

但是我将如何使用forEach方法并通过 使用setBorn ?试:

    people.forEach(Person::setBorn);

导致错误“无法解析方法setBorn”。

另外,我该如何传递True的值?

回答:

使用lambda:

people.forEach((p) -> p.setBorn(true));

没有发现仅使用Java 8 API的其他方法。


使用此自定义功能:

public static <T, U> Consumer<T> bind2(BiConsumer<? super T, U> c, U arg2) {

return (arg1) -> c.accept(arg1, arg2);

}

你可以做:

people.forEach(bind2(Person::setBorn, true));

如果Java API或库中提供了这种实用程序方法,请告诉我们。

以上是 带参数的方法引用 的全部内容, 来源链接: utcz.com/qa/410530.html

回到顶部