带参数的方法引用

在Java 8中,使用以下类

class Person { private boolean born; Person() { } public void setBornTrue() { born = true; } public void setBorn(boolean state) { born = state; } } 

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

  ArrayList 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的其他方法。


有了这个自定义function:

 public static  Consumer bind2(BiConsumer c, U arg2) { return (arg1) -> c.accept(arg1, arg2); } 

你可以做:

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

如果这种实用程序方法在java API或库中可用,请告诉我们。