참고 : Hystrix과 관련하여이 질문은 구체적으로 다루지 만 그 내용은 Java generics에 관한 것이므로 그에 대한 답을 얻을 수 있습니다.하위 클래스 지정 및 제네릭
을 BaseCommand
으로 서브 클래스하려고하는데, 나머지는 내 응용 프로그램에서 서브 클래 싱 할 수 있습니다. 이 BaseCommand
에는 다른 명령 서브 클래스가 무료로 상속 할 수있는 모든 종류의 항목이 포함됩니다.
내 최고의 지금까지 시도 :
public class BaseCommand<T> extends HystrixCommand<T> {
// Stuff
}
public class FunnyCommand<Widget> extends BaseCommand<Widget> {
// Stuff
}
그러나 이것은 다음과 같은 컴파일러 오류 발생 :
The class com.netflix.hystrix.HystrixCircuitBreaker$UnitTest$BaseCommand refers to the class com.netflix.hystrix.HystrixCircuitBreaker$UnitTest$BaseCommand and uses 1 parameters, but the referred class takes no parameters
또한 다음과 같은 컴파일러 경고 생성 방법 :
The type parameter String is hiding the type String
을 내가 할 수있는 재 작성 :
BaseCommand
과는HystrixCommand
위해 어떤 유형 (T
,?
등) 일반이고; 및BaseCommand
하위 클래스는 구체 유형 (문자열, Long, 위젯 등)에 대해 일반적입니다. 및- 없음 컴파일러 오류 또는 경고가 여기에 자바 7에
는 존재하지 않습니다.
실제 코드 또는 실제 오류를 표시하십시오. 두 번째 오류는 표시된 코드에 적용 할 수 없습니다. –
이'FunnyCommand'는 여러분이 다른 곳에서 선언 한'Widget' 타입과 관계없이'Widget'이라는 타입 파라미터를 선언합니다. –