자바 프록시 클래스 작성에 대한 질문

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가 달라요. 이걸 어떻게 해결해요?클래스 마운트가 문제입니까?

좋은 웹페이지 즐겨찾기