我有两个使用泛型类型(A,B)的类。我的问题是 - 从 B 内部使用第一个泛型类型 (TA) 的最佳方法是什么?这是简化的示例:
public class A<TListItemsType>
{
List<TListItemsType> list = new LinkedList<TListItemsType>();
public List<TListItemsType> getList()
{
return list;
}
}
public class B<TContainderType extends A>
{
TContainderType temp = null;
public B(TContainderType cont)
{
temp=cont;
}
public void DoWork()
{
for (TListItemsType item : temp.getList())
{
System.out.println(item);
}
}
}
我已经尝试过这里建议的解决方案-
public class B<TContainderType extends A<TListItemsType>>
{
TContainderType temp = null;
public B(TContainderType cont)
{
temp=cont;
}
public void DoWork()
{
for (TListItemsType item : temp.getList())
{
System.out.println(item);
}
}
}
只要使用诸如 Integer 或 String 之类的预定义类型,它就可以工作,遗憾的是,这不起作用,因为编译器无法将泛型识别为类名。
所以继续尝试配置另一个泛型类型,然后在扩展中使用它:
public class B<TListItemsType, TContainderType extends A<TListItemsType>>
{
TContainderType temp = null;
public B(TContainderType cont)
{
temp=cont;
}
public void DoWork()
{
for (TListItemsType item : temp.getList())
{
System.out.println(item);
}
}
}
它确实有效,但味道不对。是否有另一种方法可以使用另一个泛型类型使用的泛型类型?