자바 프록시 클래스 작성에 대한 질문
1889 단어 Java 통합
Object[] elements = new Object[3];//
ShapeProxyHandler proxyHandler1 = new ShapeProxyHandler(new Circle());
Object proxy1 = Proxy.newProxyInstance(null, new Class[] { Shape.class } , proxyHandler1);
elements[0] = proxy1;
이 코드, 그중에서Circle은 내가 정의한 이 가방의 클래스이고, Shape은 Cirlce의 부류(추상 클래스)
실행할 때 다음과 같은 오류가 발생했습니다
Exception in thread "main"java.lang.IllegalArgumentException: class reflect.Circle is not visible from class loader
at java.lang.reflect.Proxy.getProxyClass(Unknown Source)
at java.lang.reflect.Proxy.newProxyInstance(Unknown Source)
at reflect.ProxyTestShape.main(ProxyTestShape.java:13)
기본 클래스 마운트기인 것 같습니다. 이reflect를 찾을 수 없습니다.Circle, Proxy의 getProxy 방법을 보십시오. 이 코드를 보십시오.
String interfaceName = interfaces[i].getName();
Class interfaceClass = null;
try {
interfaceClass = Class.forName(interfaceName, false, loader);
} catch (ClassNotFoundException e) {
}
if (interfaceClass != interfaces[i]) {
throw new IllegalArgumentException(
interfaces[i] + " is not visible from class loader");
}
/*
* Verify that the Class object actually represents an
* interface.
*/
if (!interfaceClass.isInterface()) {
throw new IllegalArgumentException(
interfaceClass.getName() + " is not an interface");
}
아마 안에 있는 이 구절일 거예요.
interfaceClass = Class.forName(interfaceName, false, loader);
이것
if (interfaceClass != interfaces[i]) {
throw new IllegalArgumentException(
interfaces[i] + "is not visible from class loader");
}
코드를 보면 불러와야 하는interfaceClass와 내가 전달해야 하는Shape.class가 달라요. 이걸 어떻게 해결해요?클래스 마운트가 문제입니까?
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 프록시 클래스 작성에 대한 질문이 코드, 그중에서Circle은 내가 정의한 이 가방의 클래스이고, Shape은 Cirlce의 부류(추상 클래스) 실행할 때 다음과 같은 오류가 발생했습니다 Exception in thread "main"java.l...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.