Heim  >  Artikel  >  Java  >  Verwendung eines dynamischen Java-Proxys

Verwendung eines dynamischen Java-Proxys

巴扎黑
巴扎黑Original
2016-12-02 09:58:571418Durchsuche

1. Schnittstelle Human.java

public interface Human {  
    void say();  
}

2. Menschliche Implementierungsklasse

public class Person implements Human {  
  
    @Override  
    public void say() {  
        System.out.println("haha");  
    }  
  
}


3. Verarbeitungsklasse

🎜>
import java.lang.reflect.InvocationHandler;  
import java.lang.reflect.Method;  
  
public class Hander implements InvocationHandler {  
    private Object obj;  
    public Hander(Object obj) {  
        this.obj = obj;  
    }  
    public Hander() {  
    }  
    @Override  
    public Object invoke(Object proxy, Method method, Object[] args)  
            throws Throwable {  
        System.out.println("before");  
        method.invoke(obj, args);  
        System.out.println("after");  
        return null;  
    }  
  
}

4. Verwenden Sie

import java.lang.reflect.Proxy;  
  
public class Main {  
  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        Human i = (Human) Proxy.newProxyInstance(Thread.currentThread()  
                .getContextClassLoader(), Person.class.getInterfaces(),  
                new Hander(new Person()));  
        i.say();  
    }  
  
}

5. Geben Sie das Ergebnis aus

before  
haha  
after


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:trim()-Funktion in JavaNächster Artikel:trim()-Funktion in Java