Я немного отстал от дженериков, но мне интересно, для следующего класса:
static class SomeClass<T> {
private T value;
public SomeClass(T value) {
T.class?
this.value = value;
}
public T getValue() {
return value;
}
}
Если вызывается, например: SomeClass<String> stringer = new SomeClass<String>("Hello");
Можно ли получить String.class
(или что-то еще Tбудет) в конструкторе?
Хорошо, подождите секунду, я собираюсь объяснить, что я пытаюсь решить
Фактическая проблема заключается в том, что я использую OrmLite , и у меня есть много объектов DAO, таких как этот:
public class PostDAO extends BaseJdbcDao<Post, String> {
public PostDAO(DatabaseType databaseType) {
super(databaseType, Post.class);
}
}
Для Domain
это:
public class DomainDAO extends BaseJdbcDao<Domain, String> {
public DomainDAO(DatabaseType databaseType) {
super(databaseType, Domain.class);
}
}
и так далее.Я хотел их параметризовать, чтобы у меня был только один:
public class DAO<K, V> extends BaseJdbcDao<K, V> {
public DAO(DatabaseType databaseType) {
super(databaseType, (WHAT HERE?));
}
}
, но я застрял на what here
части)