jar 파일에서 클래스를로드하고 해당 클래스의 인스턴스를 만들려고합니다. 모든 클래스는 IModule 인터페이스를 구현합니다.
인스턴스가 성공적으로 생성되었지만 개체를 IModule 유형으로 캐스팅하려고 할 때마다 ClassCastException이 발생합니다.
이것은 내 코드입니다.
urlCl = new URLClassLoader(new URL[] { classFile.toURL()},System.class.getClassLoader());
Class projectClass = urlCl.loadClass("Project");
IModule projectObj = (IModule) projectClass.newInstance();
내 프로젝트는 IModule이 "프로젝트"와 "로더"의 클래스 경로에 추가되는 별도의 프로젝트로 일식 상태에 있습니다.
내가 뭘 잘못하고 있는지에 대한 제안이 있습니까? 감사.
Java에서 클래스 또는 인터페이스는 정규화 된 이름과이를로드 한 클래스 로더로 식별됩니다.
아마도 객체를 올바른 인터페이스로 캐스트하려고하지만 다른 클래스 로더에 의해로드되었을 것입니다.
이것 좀보세요 :
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다