如何替换 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 版本运行的要求。