2014-11-27 3 views
0

Я работаю с OrmLite для Java, и у меня есть проблема с дженериками. Все классы, которые я использую для управления базой данных, почти одинаковы, единственное, что меняется, это типы классов. Я хотел использовать java generics для этого, но мне нужна универсальная функция (E.class) для работы, как я могу это сделать?OrmLite и Java Generics

Я попытался использовать дженерики, как:

public void Database<E> { 
    public Database() { 
     dao = DaoManager.createDao(connectionSource, E.class); 
    } 
} 

, но он не будет принимать E.class. Что еще я могу попробовать?

ответ

0

Вы должны предоставить Class<E> в конструкторе:

public Database(Class<E> clazz) { 
    dao = DaoManager.createDao(connectionSource, clazz); 
} 

В противном случае нет никакого способа, чтобы иметь Class, представляющие общий параметр во время компиляции, потому что компилятор не знает, что фактического типа.

Подробнее:

+0

Спасибо, что работал! – HPerin