2017-11-08 1 views
0

일반 인터페이스를 사용하여 컴파일 오류가 발생하는 것 같습니다. 목표는 테스트 클래스에서 사용하기위한 인터페이스를 만드는 것입니다.이 인터페이스는 도메인 클래스의 공통 메소드와 생성 된 DTO 클래스를 정의합니다. 나는 파기를했는데 지금까지 발견 한 답변 중 아무 것도 내가하려는 일에 적용 할 수없는 것 같습니다. 대부분의 답변은 class not within type bounds을 다시 참조하거나 여기에 옵션이 아닌 와일드 카드를 사용하도록 제안합니다.Java 일반 인터페이스 '유형 인수 내에서 제한 없음'오류

[uberCompile] BrandDto.java:10: error: type argument T#1 is not within bounds of type-variable T#2 
[uberCompile] public class BrandDto<T extends SubCollectionDto> implements IBrand<T> { 
[uberCompile]                  
[uberCompile] where T#1,T#2 are type-variables: 
[uberCompile]  T#1 extends SubCollectionDto declared in class BrandDto 
[uberCompile]  T#2 extends ISubCollection declared in interface IBrand 

내 클래스 구조는 다음과 같습니다 :

interface IBrand<T extends ISubCollection> 

interface ISubCollection 

class Brand<T extends SubCollection> 
    extends Entity 
    implements IBrand<T> 

class SubCollection 
    extends Entity 
    implements ISubCollection 

생성 된 DTO 클래스의 모양 :

class SubCollectionDto 
    implements ISubCollection 

class BrandDto<T extends SubCollectionDto> 
    implements IBrand<T> 
내가 컴파일 할 때

, 나는 다음과 같은 오류가

나는 내 머리가 내가 여기서 잘못하고있는 것을 이해하려고 노력하고있다. 어떤 도움이라도 대단히 감사하겠습니다.

+0

수업 기관을 없앨 수 있습니까? 그것들은이 문제와 무관하며 작은 화면에서 읽을 수 없도록 만듭니다. –

+2

나를 1.8 용으로 잘 컴파일합니다. – tsolakp

+0

차이가있을 경우 현재 1.7을 사용하고 있습니다. 이상한 것은, 나는 일식에서 어떤 오류도 얻지 않는다는 것이다. 개미를 사용하여 컴파일 할 때만 오류가 발생합니다. – pbuchheit

답변

0

나는 마침내 그것을 생각했다고 생각합니다. 그것은 제네릭과 아무 관련이없는 클래스 패스 문제였습니다. 원래 DTO 클래스를 설정할 때 'src'디렉토리 아래에있었습니다. 나는 나중에 그것들을 다른 디렉토리로 이동 시켰지만, 분명히 오래된 폴더는 절대로 제거되지 않았다. 그래서 개미가 이전 디렉토리를보고있는 동안 eclipse는 현재의 정확한 파일 집합을보고있었습니다. 왜 그것이 내가 본 오류 메시지의 원인인지는 모르지만 지금은 작동 중입니다.