타일에 대해 유감스럽게 생각합니다. 내 질문을 재개하는 법을 몰랐습니다. 일반에 일반성을 도입 할 수 있습니까?
은 내 문제를 소개하자 :내가 제네릭 형식의 유형을 싶어.
일부 코드 :
public class AbstractDao<T, PK extends Serializable> {
public T getByPrimaryKey(PK primariKey) {
return null;
}
}
public class AbstractEntity<PK extends Serializable> {
PK id;
//Getter Setter
}
public class Entity extends AbstractEntity<Long> {
}
싶습니다 코드 변경 :
public class AbstractService<T, PK extends Serializable> {
AbstractDao<T, PK> dao;
public T getByPrimaryKey(final PK primaryKey) {
return dao.getByPrimaryKey(primaryKey);
}
}
public class EntityService extends AbstractService<Entity, Long> {}
아이디어가 AbstractService 에서 "PK는 직렬화 확장"제거하고이 동적으로 그것을 얻을 것입니다.
어떻게 할 수 있습니까? 도움을
public T getByPrimaryKey(final PK primaryKey)
감사합니다 : - > PK 나는 방법에서 "개체"대신 "PK"를 사용하지 않으려는 ... 유지해야한다.
종류는 당신이 피할 수 LongPrimaryKey
등 그 방법으로, 당신은 일반적인 PK
유형을 원하지 않는 경우
"AbstractService에서"PK extends Serializable "을 제거하고 동적으로 가져 오는 것이 좋습니다." "동적으로 잡아라"는 것은 무엇을 의미합니까? 그걸로 무엇을하고 싶니? –
어디에서 동적으로 가져 오나요? 그리고 현재 코드에 대해 마음에 들지 않는 것은 무엇입니까? –