我有一个抽象类,它返回子类对象和一个通用的viewType对象
abstract public class _Adapter<ChildClass, ViewType extend DefinedView>
{
ViewType view;
public ViewType getView()
{
return view;
}
public ChildClass setValue()
{
//do something
return (ChildClass) this;
}
private ViewType createView()
{
ParameterizedType superClass = (ParameterizedType) getClass().getGenericSuperclass();
Class<ViewType> type = (Class<ViewType>) superClass.getActualTypeArguments()[1];
ViewType view = null;
Constructor<?> ctor = null;
try
{
ctor = type.getConstructor( SomeDataType );
}
catch (NoSuchMethodException e)
{
e.printStackTrace();
}
try
{
view = (ViewType) ctor.newInstance( somedata() );
}
catch (InstantiationException | InvocationTargetException | IllegalAccessException e)
{
e.printStackTrace();
}
return view;
}
}
我有A类,它定义了 ViewType
abstract class A<ChildClass> extends _Adapter<ChildClass, DefinedViewTypeA>
{
}
最后有一个扩展了A的类B,但它希望类A的viewType
class B extends A<B>
{
}
方法 createView()不适用于类B,因为没有第二个参数类参数。那么我该如何使其工作。