私はクラスを持っている:ジェネリックでも可能ですか?
public class GenericDAO<T, ID extends Serializable> {
private final EntityManager em;
private final Class<T> entityClass;
public GenericDAO(EntityManager em) {
this.em = em;
ParameterizedType genericSuperClass = (ParameterizedType) getClass().getGenericSuperclass();
this.entityClass = (Class<T>) genericSuperClass.getActualTypeArguments()[0];
}
}
私はこのクラスを拡張した場合、すべてが正常に動作します。今私はこのクラスを直接使用したい(コードを参照してください、CRUDBeanはCRUDServiceの実装です) - 特定のクラスを取得するためにコンストラクタを書き直す必要があります。
@Remote(CRUDService.class)
@Stateless
public class CRUDBean<T extends EntityBase> implements CRUDService<T> {
@PersistenceContext
private EntityManager entityManager;
@Override
public long size(String whereClause, Map<String, Object> whereParameters) {
return new GenericDAO<T, Long>(entityManager).size(whereClause, whereParameters);
}
}
どのようにジェネリックサービスを書くか?
が、これはJavaのですか?いずれかの方法で適切なタグを追加してください。ジェネリックは多くの言語で存在します。 – Kobi
はい。それはJavaです。 – Vlada