我对泛型有点蹩脚,但我想知道,对于下面的类:
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
上部分)
最佳答案
关于:
public class DAO<K, V> extends BaseJdbcDao<K, V> {
public DAO(DatabaseType databaseType, Class databaseClass) {
super(databaseType, databaseClass);
}
}
关于java - 是否可以获得通用参数的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3156453/