Błąd w implementacji klasy pośredniczącej

0

Witajcie!
Nie rozumiem, dlaczego nie chce to działać:
Mam swój własny, bardzo prosty interfejs:

public interface Interfejs 
{
	public void print();
}
```
Oraz równie prostą, implementującą go klasę:
```java
public class Klasa implements Interfejs
{
	@Override
	public void print()
	{
		System.out.println("CosTam");
	}
}
```
Teraz chciałbym zrobić klasę pośredniczącą, która będzie mnie informowała, jeśli metoda klasy opakowanej będzie wykonywana:
```java
import java.lang.reflect.*;

public class Spy implements InvocationHandler
{
	private Object target;
	
	public Spy(Object target)
	{
		this.target = target;
	}
	
	@Override
	public Object invoke (Object proxy, Method method, Object[] args) throws Throwable
	{
		System.out.println("\nInformacja.");
		return method.invoke(target, args);
	}
}
```
No i ostatecznie tworzę klasę, która mi to przetestuje:
```java
import java.lang.reflect.*;

public class Test
{
	public static void main(String[] args) throws Throwable
	{
		Klasa klasa = new Klasa();
		InvocationHandler handler = new Spy(klasa);
		Object proxy = Proxy.newProxyInstance( ClassLoader.getSystemClassLoader(), new Class[] { Interfejs.class } , handler);
		proxy.print();      //BŁĄD
	}
}
```

Mam wrażenie, że nie rozumiem czegoś związanego z mechanizmami klas pośredniczących.
Według książki, z której się uczę:
Klasa pośrednicząca zawiera następujące metody:
 a) wszystkie metody wymagane przez określone interfejsy;
 b) wszystkie metody zdefiniowane w klasie Object.

Więc dlaczego nie mogę wywołać na rzecz jej obiektu metody wymaganej przez mój interfejs?
0
Interfejs proxy = (Interfejs)Proxy.newProxyInstance( ClassLoader.getSystemClassLoader(), new Class[] { Interfejs.class } , handler);
0

Bardzo dziękuję.

1 użytkowników online, w tym zalogowanych: 0, gości: 1