如何使用 Vaadin Flow CallBackDataProvider 修复 'Incompatible Types' 错误

How to fix 'Incompatible Types' error with Vaadin Flow CallBackDataProvider

我尝试为我的网格制作一个带有 vaadin 流的回调数据提供者。但它 returns 一个不兼容的类型错误,当我尝试制作它时。

我已经将代码最小化为最简单的问题版本,但它仍然不起作用,我按照 vaading 流程指南制作了一个,它与我的代码几乎相同:

dataProvider = DataProvider.fromCallbacks(
            query -> {  
                List<Person> people = new ArrayList<>();                
                return people;              
            },          
            query -> {          
                int i = 0;              
                return i;               
            });

这应该有效,但我收到以下错误:

incompatible types: no instance(s) of type variable(s) T,F exist so that com.vaadin.data.provider.CallbackDataProvider conforms to com.vaadin.flow.data.provider.CallbackDataProvider

所有与 Vaadin 10+(流)相关的 类 都在 com.vaadin.flow 包中。请使用该包中的 DataProviderHere 是代码示例:

import com.vaadin.flow.data.provider.*;

DataProvider<Person, Void> dataProvider = DataProvider.fromCallbacks(
            // First callback fetches items based on a query
            query -> {
                ...
                return persons.stream();
            },
            // Second callback fetches the number of items for a query
            query -> getPersonService().getPersonCount());