状況は次のとおりです。
interface A{}//interface for entities
class B implements A{}//entity B
class C implements A{}//entity C
abstract class AR<E extends A>{}//generate list of E via a file,this will be done after the construct func.
class BR extends AR<B>{}
class CR extends AR<C>{}
今私は維持したい:
Map<String,List<A>> data;//<filepath+filename, list of entities in file>
関数。ブローは、fileAddr に基づいてリストを返します。
<E extends A,R extends AR<E>> List<A> getList(String fileAddr)
{
if(data.containsKey(fileAddr))
return data.get(fileAddr);
else
{
AR<E> reader=new R(fileAddr);//generate a list of E via this file
List<E> values=reader.getValues();
data.put(fileAddr,values);
return values;
}
}
しかし、これは機能せず、new R(fileAddr)
サポートされていません。
getList() 関数を実装する方法です。仕様に基づいています。その上。