本篇内容主要讲解“java动态代理的简单使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java动态代理的简单使用”吧!
//---------------接口
package reflect_test;
public interface Animals {
public String scrime(String str);
}
//
--------------类
package reflect_test;
public class Dog implements Animals {
private int age =100;
private String xstr="test...";
public int page = 100000;
private Dog(String xstr) {
this.xstr = xstr;
}
public Dog() {
}
public Dog(int age) {
this.age = age;
}
@Override
public String scrime(String str) {
return str;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
private int getAddAge() {
return age+=10;
}
public void getXstr() {
System.out.println(xstr);
}
}
-------------代理类
package reflect_test;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import org.junit.Before;
import org.junit.Test;
public class ProxyTest {
@Test
public void testProxy() throws Exception {
Class<?> clazz = Class.forName("reflect_test.Dog");
Class<?>[] interfa = {Class.forName("reflect_test.Animals")};
Animals am = (Animals)Proxy.newProxyInstance(clazz.getClassLoader(), interfa, new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String str = (String)method.invoke(new Dog(), args);
return str + "\n append by proxy !";
}
});
System.out.println(am.scrime("normal scriming....."));
}
}
到此,相信大家对“java动态代理的简单使用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:http://blog.itpub.net/31506529/viewspace-2200330/