클래스 계층 구조에 몇 가지 추가 레이어를 추가 할 때까지 사용자 자바 제네릭과 모든 것이 잘 작동하는 클래스가 있습니다.Java 제네릭과 "바운드 불일치"
문제가 "유형 삭제"와 관련이 있는지 궁금하지만이를 제거하기 위해 상속을 나타내는 방법을 모르겠습니다.
클래스 정의 :
public interface IBaseDAO <T, PK extends Serializable>;
public interface IEntityDAO<T extends BaseEntity> extends IBaseDAO<T, Integer>;
public interface IBaseFileDAO<T extends File> extends IEntityDAO<T>;
public interface IInvoiceDAO extends IBaseFileDAO<Invoice>;
public class BaseDAO<T, PK extends Serializable> implements IBaseDAO<T, PK>;
public abstract class EntityDAO<T extends BaseEntity> extends BaseDAO<T, Integer> implements IEntityDAO<T>;
public abstract class BaseFileDAO<T extends File> extends EntityDAO<T> implements IBaseFileDAO<T>;
public class InvoiceDAO extends BaseFileDAO<Invoice> implements IInvoiceDAO;
public abstract class BaseEntity implements Serializable;
public class File extends BaseEntity;
public abstract class Transaction extends File;
public class Request extends Transaction;
public class Invoice extends Request;
오류는 다음과 같습니다
Bound mismatch: The type Invoice is not a valid substitute for the bounded parameter <T extends File> of the type BaseFileDAO<T>
Bound mismatch: The type Invoice is not a valid substitute for the bounded parameter <T extends File> of the type IBaseFileDAO<T>
내가 조금 여기에 내 깊이에서 오전, 누군가가 나에게 제거하는 송장 클래스를 표현하는 방법에 대한 몇 가지 조언을 줄 수 있습니다 오류?
는편집 :이 도움이하지만 나는 또한이있는 경우
확실하지 : 나는 당신이 질문을 엉망 것 같아
public class FileDAO extends BaseFileDAO<File> implements IFileDAO;
public interface IFileDAO extends IBaseFileDAO<File>;
이 문제를 해결하려면 13 개의 클래스/인터페이스가 필요합니다. 최소한의 예를 만들어서 읽기 쉽도록하십시오. –
'java.io.File'과 충돌하지 않습니까? –
은'IEntityDAO'과'EntityDAO '이되어야합니다. –
gigadot