다음 클래스/인터페이스 설정이 있습니다. IFoobar를 구현하고 BaseClass로 메서드의 매개 변수로 java.lang.Class 사용 문제
I을 확장 BaseClass로
- 인터페이스 IFoobar
- 클래스 BaseClass로 위의 콘크리트에 java.lang.Class의 인스턴스를 전달해야하는 메소드가있다. 수업. 나는 그렇게 선언하고있다. 내가 컴파일 할 때
void doSomething(String id, Class<IFoobar> c)
그러나, 자바는 다음과 같이 다소 오류가 불평 : 나는 최근에 일을 java.lang.Class의를 사용하는 데 필요한 한
doSomething(java.lang.String,java.lang.Class<IFoobar>) in javaclass cannot be applied to (java.lang.String,java.lang.Class<ConcreteClassA>) register("12345", ConcreteClassA.class); ^ 1 error
, 그래서 나는 뭔가를 놓치고 있다고 생각합니다. 나는 구체적인 클래스가 인터페이스의 인스턴스로 인식된다는 점에서 typed 클래스 선언이 정상적인 매개 변수처럼 작동 할 것으로 예상 했었지만, 분명히 그렇지 않습니다.
저는 여러 가지 캐스팅 방법을 시도해 봤지만 원하는 결과가 없거나 유효하지 않은 코드가있었습니다. 그래서 내가해야 할 일에 대한 어떤 생각이라도 감사 할 것입니다.
미리 감사드립니다.
가 어떻게 "클래스"의 인스턴스를 얻을 수 있습니다 사용할 수 있습니까? 어떤 수업의 객체를 전달하려고한다는 뜻입니까? –