我在实现GridSelectionModel时遇到了麻烦(使用CheckBoxSelectionModel作为灵感)。
我想创建一个RadioSelectionModel,但是在调用构造函数时却遇到了ClassCastException。
这是我的类结构(如果需要,我可以放置一些代码,但我认为这不是必需的)。我正在使用列表和子列表显示类和嵌入式类:


class RadioSelectionModel < M > extends GridSelectionModel< M >

interface RadioColumnAppearance < M >

class RadioColumnDefaultAppearance < M >

interface RadioColumnStyle extends CssResource, ColumnHeaderStyles, GridDataTableStyles
interface RadioColumnResources extends ClientBundle



RadioColumnAppearance通过gwt.xml文件链接到RadioColumnDefaultAppearance

<replace-with
    class="com.app.appearance.RadioColumnDefaultAppearance">
    <when-type-is
        class="com.app.grid.RadioSelectionModel.RadioColumnAppearance" />
</replace-with>


我碰巧发现ClassCastException是在我调用GWT.create( RadioColumnAppearance.class )时出现的,但我不知道到底是什么
 问题以及如何解决

编辑:这是RadioColumnDefaultAppearance代码。我相信问题出在这里,因为只有在我调用GWT.create时才有例外。关于错误,这是我在浏览器控制台Uncaught java.lang.ClassCastException中收到的一条简单消息:

public class RadioColumnDefaultAppearance < M > implements CheckBoxColumnAppearance< M >
{

public interface RadioColumnStyle extends CheckBoxColumnStyle
{

}

public interface RadioColumnResources extends ClientBundle
{
    @Source( "/css/RadioColumn.css" )
    RadioColumnStyle style();

    @Source( "column.png" )
    @ImageOptions( repeatStyle = RepeatStyle.Vertical )
    ImageResource specialColumn();

    @Source( "column_checked.png" )
    @ImageOptions( repeatStyle = RepeatStyle.Vertical )
    ImageResource specialColumnSelected();
}

private final RadioColumnResources resources;
private final RadioColumnStyle style;

public RadioColumnDefaultAppearance()
{

    this( GWT.< RadioColumnResources > create( RadioColumnResources.class ) );
}

public RadioColumnDefaultAppearance( RadioColumnResources resources )
{
    this.resources = resources;

    this.style = this.resources.style();

    StyleInjectorHelper.ensureInjected( style, true );
}

public void renderRadio( Context context, M value, SafeHtmlBuilder sb )
{
    sb.appendHtmlConstant( "<div class='x-grid-row-checker'>&#160;</div>" );
}


}

最佳答案

您的RadioColumnDefaultAppearance没有实现RadioColumnAppearance接口。如果要为接口定义默认的实现,则该类必须实现该接口,否则无法将实现类的实例分配给接口引用。

关于java - GXT3-ColumnSelectionAppearance ClassCastException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24287865/

10-10 18:28