자바가 제네릭 형식 인수를 사용하여 간단한 일반 메서드를 컴파일 할 수없는 이유를 알아 내려고 노력했지만 대부분이 둘러싼 클래스를 가져올 때만 사용했습니다. 기본적으로, 클래스라는 SpringApplicationContext의 정적 방법으로 스프링 컨텍스트 조작을 노출하고있다 : 나는 같은 패키지에 단위 테스트에서 호출 할 때Java 컴파일러에서 형식 인수가없는 일반 메서드
public static <T> List<T> listBeansOfType(Class<T> type)
{
return new ArrayList<T>(context.getBeansOfType(type).values());
}
, 그것은 작동합니다. 다음은 테스트 호출입니다.
List<DomainRepo> repos =
SpringApplicationContext.listBeansOfType(DomainRepo.class);
그러나 다른 패키지의 코드에서 호출 할 때 정확히 동일한 코드가 실패합니다. 컴파일러는 심볼 listBeansOfType (java.lang.Class)을 찾을 수 없다고 말합니다. 클래스를 가져 왔지만 메서드에 정적 가져 오기를 수행하지 않았습니다.
낯선 사람이라도 일주일 전에 내가 작성했을 때이 코드가 작동했다는 사실입니다. 그 이후로 릴리스 프로세스를 진행하면서 모든 것을 제쳐두어 둬야했습니다. java 1.6을 사용하여 maven 또는 Eclipse로 컴파일 할 때도 같은 오류가 발생합니다. 어떤 힌트라도 환영받을 것입니다.
이 수업은 공개 되었습니까? –