嘿,我正在尝试生成一个这样的类:
public abstract class ResourceListAdapter<T extends ResourceViewHolder> extends RecyclerView.Adapter<T> {}目前,我可以生成:
public abstract class ResourceListAdapter extends RecyclerView.Adapter<?> {}使用以下代码:
TypeSpec type = TypeSpec.classBuilder(thisClass)
.superclass(ParameterizedTypeName.get(adapterClassName, WildcardTypeName.subtypeOf(Object.class)))
.addModifiers(Modifier.ABSTRACT, Modifier.PUBLIC)
.build();我也可以这样做:
private ResourceListAdapter<? extends ResourceViewHolder> adapter;通过以下方式:
ParameterizedTypeName.get(thisClass,WildcardTypeName.subtypeOf(resourceViewHolderClassName));但我不能把它组合起来。那么你有什么想法吗??
发布于 2016-12-10 02:37:05
我有办法了!
TypeSpec type = TypeSpec.classBuilder(thisClass)
.superclass(ParameterizedTypeName.get(adapterClassName, TypeVariableName.get("T")))
.addTypeVariable( TypeVariableName.get("T", resourceViewHolderClassName))将生成:
public abstract class ResourceListAdapter<T extends ResourceViewHolder> extends RecyclerView.Adapter<T> {}https://stackoverflow.com/questions/41065000
复制相似问题