2
난 그냥 데이터베이스 (ORMLite API), 나는 그것이 메이븐을 사용하고잘못된 추론 유형
invalid inferred types for D; inferred type does not conform to declared bound(s)
[ERROR] inferred: com.j256.ormlite.dao.RuntimeExceptionDao<T,U>
[ERROR] bound(s): com.j256.ormlite.dao.RuntimeExceptionDao<capture#2 of ?,?>
내가 JDK 1.6를 구축하려고 프로세스가 컴파일에 실패 구축 컴파일 위의 몇 가지 일반 도우미를 쓰기 위해 노력하고있어 및 또한 1.7. 여기
public class BaseDbHelper<T,U> extends DatabaseHelper<T, U> {
private Dao<T, U> dao = null;
private RuntimeExceptionDao<T, U> runtimeDao = null;
Class<?> entityClass;
public BaseDbHelper(Context context) {
super(context);
entityClass = (Class<?>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
@Override
public Dao<T, U> getDao() throws SQLException {
if (dao == null) {
// !!! ERROR
dao = getDao(entityClass);
}
return dao;
}
@Override
public RuntimeExceptionDao<T, U> getDataDao() {
if (runtimeDao == null) {
// !!! ERROR
runtimeDao = getRuntimeExceptionDao(entityClass);
}
return runtimeDao;
}
}
은 라인에서 두 개의 상위 클래스의 서명이 오류가 표시됩니다
당신은 아마이 경우 형식 인수를 해결하기 위해 TypeTools 같은 것을 사용해야합니다public <D extends com.j256.ormlite.dao.RuntimeExceptionDao<T,?>, T> D getRuntimeExceptionDao(java.lang.Class<T> clazz) { }
public <D extends com.j256.ormlite.dao.Dao<T,?>, T> D getDao(java.lang.Class<T> clazz) throws java.sql.SQLException { }
는'entityClass'는'클래스 >'와'dao'이 유형 인 '다오'getDao''의 결과가 명확하게'다오 와 일치하지 않는 유형'다오 ,?>'이 될 것입니다 때문에'타입이다, 왜냐하면 컴파일러는 단순히'? '타입이 무엇인지 알지 못하기 때문이다. –
Smutje