对Collection接口的子类ArrayList进行代理,以前的remove(Object obj)方法是删除集合中第一次出现的元素(比如集合中有多个“abc”,调用remove(“abc”)后只会删除一个元素)。代理后,要求在调用remove(Object obj)方法后,能够删除集合中所有匹配的元素【动态代理】
public class Test {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
Class<? extends ArrayList> aClass = arrayList.getClass();
InvocationHandlerImpl ilist = new InvocationHandlerImpl(arrayList);<