当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

用Proxy 的静态方法 newProxyInstance 创建代理

发表于: 2013-02-19   作者:eheobo   来源:转载   浏览:
摘要: 示例代码: TestInterface s = (TestInterface)Proxy.newProxyInstance(TestProxy.class.getClassLoader(), new Class[]{TestInterface.class}, new InvocationHandler() { @Override public Object invok
示例代码:
		TestInterface s = (TestInterface)Proxy.newProxyInstance(TestProxy.class.getClassLoader(), new Class[]{TestInterface.class}, new InvocationHandler() {
			@Override
			public Object invoke(Object proxy, Method method, Object[] args)
					throws Throwable {
				if(method.getName().equals("toString")){
					return "This is a String proxy.";
				}
				return null;
			}
		});
		System.out.println(s);

注意:
  • Proxy 前的强制转换必须为接口,否则会出现
    引用
    java.lang.ClassCastException:  $Proxy0 cannot be cast to
    some Object。
  • TestInterface 为要代理的接口类型。
  • TestProxy 为实现了 TestInterface 的接口。
  • 方法的第二个参数 new Class[]{TestInterface.class},也经常看到写成 TestProxy.class.getInterfaces()。

用Proxy 的静态方法 newProxyInstance 创建代理

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号