Generics GWT中的泛型多态性
最后 编译器说: 找不到符号方法 addColumncom.google.gwt.user.cellview.client.TextColumnGenerics GWT中的泛型多态性,generics,gwt,Generics,Gwt,最后 编译器说: 找不到符号方法 addColumncom.google.gwt.user.cellview.client.TextColumn,java.lang.String 但是ModelImpl扩展了Model!!发生了什么?问题是您使用CellTable类型定义了tableImpl问题是您使用CellTable类型定义了tableImpl谢谢,但是我,您的解决方案不是多态的,我想写tableImpl=new CellTable;tableImpl=new CellTable;。我想不
但是ModelImpl扩展了Model!!发生了什么?问题是您使用CellTable类型定义了tableImpl问题是您使用CellTable类型定义了tableImpl谢谢,但是我,您的解决方案不是多态的,我想写tableImpl=new CellTable;tableImpl=new CellTable;。我想不知怎么的。。。polymorphic@XXTerror在这种情况下,您可以创建一个具有泛型类型参数“T extends Model”和extends TextColumn的新类,然后重写getValue。然后构造其中一个,而不是匿名文本列。不过,您仍然需要更改tableImpl的类型。@xxt初始化字段的代码和添加列的代码被临时链接。如果它们在同一个方法中,那么要么使用更具体类型的局部变量,要么用一些T扩展模型参数化整个类。谢谢,但是我,你的解决方案不是多态的,我想写tableImpl=new CellTable;tableImpl=new CellTable;。我想不知怎么的。。。polymorphic@XXTerror在这种情况下,您可以创建一个具有泛型类型参数“T extends Model”和extends TextColumn的新类,然后重写getValue。然后构造其中一个,而不是匿名文本列。不过,您仍然需要更改tableImpl的类型。@xxt初始化字段的代码和添加列的代码被临时链接。因此,如果它们在同一个方法中,那么要么使用更特定类型的局部变量,要么使用一些T扩展模型参数化整个类
class ModelImpl extends Model {
CellTable<? extends Model> tableImpl;
tableImpl=new CellTable<ModelImpl>();
TextColumn<ModelImpl> column = new TextColumn<ModelImpl>() {
@Override
public String getValue(ModelImpl object) {
return object.getColumnValue();
}
};
tableImpl.addColumn(column, "nameColumn");
public void addColumn(Column<T,?> col)
CellTable<ModelImpl> tableImpl;