我试图修改我的代码,以避免使用泛型的所有重复代码。java,generic和getAll
我有一个DBBaseClass类将被其他类扩展。我试图创建一个getAll方法,它返回存储在数据库中的子类的所有对象。
class abstract DBBaseClass {
abstract readDataBase(int _id);
public <T extends DBBaseClass> List<T> getAll()
{
List<T> array = new ArrayList<T>();
ArrayList<Integer> myints = DBManager.request_database_for_ids(getIdField(), getTableName());
T myTObject = new T(); // NOT WORKING *************************
for (int i=0;i<myints.size();i++) {
myTObject.read(myints.get(i));
array.add(myTObject);
}
return array;
我有错误: - 不能实例化类型T - t类是不通用的;它不能被参数化 论据<>
我怎么instanciate我的T子类在这里?
诀窍是什么?
谢谢。
编辑:
为了解释更详细我的目标: 我有两个类SUbClassA和SubClassB延伸DBBaseClass。
我想要一个方法: SubClassA.getAll()返回SUbClassA对象的数组列表。 SubClassB.getAll()返回SUbClassB对象的数组列表。
起初,我在我所有的子类中创建了getAll ...所以,我现在要把这个getAll()放到DBBase类中。
如果我想让他们返回List,但我不知道如何告诉该方法“返回此列表的这种特定类别的子类”,这很容易。
你想让DBBase类包含它自己的实例吗?这对我来说看起来很奇怪。请解释一下,就好像我们是9岁的孩子一样,你想达到什么目的。 –