如何替换 java 具有双冒号的代码
how can I replace java code that has double colon
有如下代码
Grid.Column<Person> firstNameColumn = grid.addColumn(Person::getFirstName).setHeader("First Name");
Grid.Column<Person> lastNameColumn = grid.addColumn(Person::getLastName).setHeader("Last Name");
我想在没有::
的情况下重写它。原因是我需要使用像 getLastName
这样的函数来具有像 getLastName(firstname, age)
.
这样的两个参数
能否提供解决方案或如何搜索?
谢谢
你可以使用 lambda
grid.addColumn(person -> person.getLastName(person.getFirstName(),person.getAge());
有关详细信息,请转至 this site
Java 8 之前的版本通常使用这样的匿名 class:
grid.addColumn(new ValueProvider<Person, String>() {
@Override
public String apply(Person person) {
return person.getLastName();
}
})
但是您不需要它来自定义方法调用。一个普通的 lambda 会做:
grid.addColumn(person -> person.getLastName(foo))
如你所见,后者要简洁得多。 Vaadin 的 API 旨在包含 Java 8 种功能,例如函数引用、lambda 和流。 JDK8 和更新版本也是现代 Vaadin 版本运行的要求。
有如下代码
Grid.Column<Person> firstNameColumn = grid.addColumn(Person::getFirstName).setHeader("First Name");
Grid.Column<Person> lastNameColumn = grid.addColumn(Person::getLastName).setHeader("Last Name");
我想在没有::
的情况下重写它。原因是我需要使用像 getLastName
这样的函数来具有像 getLastName(firstname, age)
.
能否提供解决方案或如何搜索?
谢谢
你可以使用 lambda
grid.addColumn(person -> person.getLastName(person.getFirstName(),person.getAge());
有关详细信息,请转至 this site
Java 8 之前的版本通常使用这样的匿名 class:
grid.addColumn(new ValueProvider<Person, String>() {
@Override
public String apply(Person person) {
return person.getLastName();
}
})
但是您不需要它来自定义方法调用。一个普通的 lambda 会做:
grid.addColumn(person -> person.getLastName(foo))
如你所见,后者要简洁得多。 Vaadin 的 API 旨在包含 Java 8 种功能,例如函数引用、lambda 和流。 JDK8 和更新版本也是现代 Vaadin 版本运行的要求。