首页 > 代码库 > 对list代理扩展功能
对list代理扩展功能
package 动态代理扩展List; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.ArrayList; import java.util.List; public class ListPro { public static void main(String[] args) { final List<Object> list = new ArrayList<Object>(); // 对list代理 Object lis = Proxy.newProxyInstance(ListPro.class.getClassLoader(), new Class[] { List.class }, new InvocationHandler() { @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // 显示参数 if (method.getName().equals("add")) { System.err.println("参数" + args[0]); } // diaoyong return method.invoke(list, args); } }); // 转换 List<Object> l = (List<Object>) lis; l.add("kk"); System.err.println("size:" + l.size() + "," + list.size()); System.err.println("-----------"); list.add("xx"); System.err.println("size2:" + l.size() + "," + list.size()); System.err.println("========"); for (Object ls : l) { System.err.println(ls); } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。