【发布时间】:2014-08-24 05:06:53
【问题描述】:
在 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 的值?
【问题讨论】:
-
你想达到什么目的?这是错误的 -
people.add(new Person(null));people.forEach(Person::setBornTrue); -
people.add(new Person(null));这条线对吗?为什么为空?你的代码对我有用,但如果你删除了null。 -
剪切和粘贴错误...删除了空值。
-
我想知道为什么这也不可能。
-
看一下MethodHandle,它太复杂了,一点也不像C++中的std::bind