ジェネリック型(A、B)を使用する2つのクラスがあります。私の質問は-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);
}
}
}
また、整数や文字列などの事前定義された型を使用している限り機能しますが、残念ながら、コンパイラはジェネリックをクラス名として認識しないため、これは機能しません。
そこで、さらに進んで、別のジェネリック型を構成し、それをextends内で使用しようとしました。
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);
}
}
}
そしてそれは実際に機能しますが、それは正しいにおいがしません。別のジェネリック型で使用されるジェネリック型を使用する別の方法はありますか?