类抽象和泛型

Pet*_*nčo 5 java generics

我需要扩展一个我无法修改的抽象类:

public abstract class CustomField<T> extends AbstractField<T> implements HasComponents {
    // some code

    @Override
    public abstract Class<? extends T> getType();

    // some code
}
Run Code Online (Sandbox Code Playgroud)

使用这样的泛型类:

public class VerticalCheckBoxSelect<T> extends CustomField<Set<T>> {

    @Override
    public Class<? extends Set<T>> getType() {
        return ???;
    }

}
Run Code Online (Sandbox Code Playgroud)

我的问题很明显:应该归还什么VerticalCheckBoxSelect::getType才能编译(和正确)?

小智 3

你可以return Class.class.cast(HashSet.class);

它将编译,但会给你一个未经检查的分配警告。