私はジェネリックスに少し不自由ですが、次のクラスについては疑問に思います。
static class SomeClass<T> {
private T value;
public SomeClass(T value) {
T.class?
this.value = value;
}
public T getValue() {
return value;
}
}
たとえば呼び出された場合:
コンストラクターで(またはTが何であれ)SomeClass<String> stringer = new SomeClass<String>("Hello");
取得することは可能ですか?String.class
ちょっと待って、私が解決しようとしていることを説明します
実際の問題は、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);
}
}
等々。私はこれらをパラメータ化して、1つしか持てないようにしたかったのです。
public class DAO<K, V> extends BaseJdbcDao<K, V> {
public DAO(DatabaseType databaseType) {
super(databaseType, (WHAT HERE?));
}
}
しかし、私はそのwhat here
部分で立ち往生しています)