【发布时间】:2018-04-06 07:50:00
【问题描述】:
我想删除我的代码中的警告。我尝试了以下两个更改:
grid = new MyGrid<>(KPIBusinessDisplay.class);
grid.setColumns();
grid.addColumn("frequency");
Grid.Column<KPIBusinessDisplay, FREQUENCYUNITTYPES> frequencyUnitColumn = grid.addColumn("frequencyUnit");
frequencyUnitColumn.setRenderer(new ValueProvider<FREQUENCYUNITTYPES, String>()
{
private static final long serialVersionUID = 6833675800012389627L;
@Override
public String apply(FREQUENCYUNITTYPES source) {
return messageByLocaleService.getMessage(source.name());
}}, new TextRenderer()
);
对于这种情况,我在分配 grid.addColumn 返回值时出错:
类型不匹配:无法从 Grid.Column
转换为 Grid.Column
如果我尝试不同:
Grid.Column<KPIBusinessDisplay, ?> frequencyUnitColumn = grid.addColumn("frequencyUnit");
frequencyUnitColumn.setRenderer(new ValueProvider<FREQUENCYUNITTYPES, String>()
{
private static final long serialVersionUID = 6833675800012389627L;
@Override
public String apply(FREQUENCYUNITTYPES source) {
return messageByLocaleService.getMessage(source.name());
}}, new TextRenderer()
);
我在 setRenderer 收到错误:
Grid.Column
类型中的方法 setRenderer(ValueProvider , Renderer super P>) 不适用于参数(新ValueProvider (){}, TextRenderer)
如果我这样使用它:
Grid.Column frequencyUnitColumn = grid.addColumn("frequencyUnit");
frequencyUnitColumn.setRenderer(new ValueProvider<FREQUENCYUNITTYPES, String>()
{
private static final long serialVersionUID = 6833675800012389627L;
@Override
public String apply(FREQUENCYUNITTYPES source) {
return messageByLocaleService.getMessage(source.name());
}}, new TextRenderer()
);
然后我收到警告:
类型安全:方法 setRenderer(ValueProvider, Renderer) 属于原始类型 Grid.Column。对泛型 Grid.Column
的引用应该被参数化
如何在不引发错误的情况下修复警告?
【问题讨论】: