- /**
- * 练习使用代理,添加功能
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- HashSet has =(HashSet)Proxy.newProxyInstance(
- //这一步是告诉proxy用哪个类加载器加载这个类
- HashSet.class.getClassLoader(),
- //这一步是为了告诉动态生成类的proxy,要生成什么样的类
- new Class[]{HashSet.class},
- //这个参数是代理的关键参数,这个参数的作用是对要代理的方法进行操作
- new InvocationHandler() {
- HashSet set = new HashSet();
- @Override
- public Object invoke(Object proxy, Method method, Object[] args)
- throws Throwable {
- // TODO Auto-generated method stub
- Object retVal = method.invoke(set, args);
- return retVal;
- }
- }
- );
- //has.hashCode();
- has.add("hllo");
-
- }
复制代码 |
|