這裏的情況是:如何將類型傳遞到FUNC
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>
的FUNC。打擊將返回基於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()函數。基於規格。以上。
是「E」被傳遞到這個類通過類的聲明? – HericDenis
你不能使用'new'關鍵字來創建一個泛型類型:new R(...)在你的情況下,在Java中是非法的。 – breezee
getList是一個泛型方法,E作爲getList的泛型類型傳遞。 – jchzhu