GXT model.get()返回错误的实例类型

时间:2013-02-14 13:15:47

标签: gwt casting gxt

在我的应用程序中我正在使用gwt 2.5.0和gxt 2.2.5。所以,我有这个渲染器的ColumnConfig列:

column.setRenderer(new GridCellRenderer() {

            @Override
            public Text render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore listStore, Grid grid) {
                List<AccountGroupDto> accountGroups  = model.get(property);
                // some stuff here

                return groupsText;
            }
        });

但是当我尝试用我的列表emenetns做某事时,我得到某种类型转换错误。我使用了一个调试器,我的列表元素的类型似乎是com.example.core.application.api.BeanModel_com_example_core_application_api_AccountGroupDto,并且它不能转换为com.example.core.application.api.AccountGroupDto,它应该是。{/ p>

当我从1.7升级gwt和从2.0.1升级gxt时出现此错误

1 个答案:

答案 0 :(得分:0)

将类型添加到GridCellRenderer(根据您的错误我假设您使用的是BeanModel),请使用以下类型:

column.setRenderer(new GridCellRenderer<BeanModel>() {

            @Override
            public Object render(BeanModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<BeanModel> store, Grid<BeanModel> grid) {
                // ...

render事件返回的模型现在是BeanModel,以获取原始元素,使用模型的 .getBean 属性。

OriginalObjectType myObj = model.getBean();

现在你可以从myObj获取你的对象:

List<AccountGroupDto> accountGroups  = myObj.get(property);

希望这有帮助。