我对泛型有点蹩脚,但我想知道,对于以下课程:
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
部分)