易截截图软件、单文件、免安装、纯绿色、仅160KB

java动态代理应用于RMI

动态代理是指客户通过代理类来调用其它对象的方法
动态代理使用场合:
•远程方法调用(RMI)
• 
1.创建一个实现接口InvocationHandler的类,它必须实现invoke方法
2.创建被代理的类以及接口
3.通过Proxy的静态方法
newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h) 创建一个代理
4.通过代理调用方法
 
参见程序VectorProxy.java
 
view plaincopy to clipboardprint?
package com.langsin.dynamicproxy;  
 
import java.lang.reflect.InvocationHandler;  
import java.lang.reflect.Method;  
import java.lang.reflect.Proxy;  
import java.util.List;  
import java.util.Vector;  
 
public class VectorProxy implements InvocationHandler  
{  
    private Object proxyobj;  
 
    public VectorProxy(Object obj)  
    {  
        proxyobj = obj;  
    }  
 
    public static Object factory(Object obj)  
    {  
        Class<?> cls = obj.getClass();  
 
        return Proxy.newProxyInstance(cls.getClassLoader(),  
                cls.getInterfaces(), new VectorProxy(obj));  
    }  
 
    public Object invoke(Object proxy, Method method, Object[] args)  
            throws Throwable  
    {  
        System.out.println("before calling " + method);  
 
        if (args != null) 


相关文档:

Java解惑3 30循环者的爱子

请提供一个对i的声明,将下面的循环转变为一个无限循环:
while (i != i + 0) {
}
与前一个谜题不同,你必须在你的答案中不使用浮点数。换句话说,你不能把i声明为double或float类型的。
与前一个谜题一样,这个谜题初看起来是不可能实现的。毕竟,一个数字总是等于它自身加上0,你被禁止使用浮点数,因此不能使用NaN ......

Java解惑4 36优柔寡断

下面这个可怜的小程序并不能很好地做出其自己的决定。它的decision方法将返回true,但是它还返回了false。那么,它到底打印的是什么呢?甚至,它是合法的吗?
public class Indecisive {
public static void main(String[] args) {
System.out.println(decision());
}
static boolean decision( ......

Java解惑4 37极端不可思议

本谜题测试的是你对某些规则的掌握程度,这些规则用于声明从方法中抛出并被catch语句块所捕获的异常。下面的三个程序每一个都会打印些什么?不要假设它们都可以通过编译:
import java.io.IOException;
public class Arcane1 {
public static void main(String[] args) {
try {
System.out.p ......

Java解惑4 42异常为循环所抛

下面的程序循环遍历了一个int类型的数组序列,并且记录了满足某个特定属性的数组个数。那么,该程序会打印出什么呢?
public class Loop {
public static void main(String[] args) {
int[][] tests = { { 6, 5, 4, 3, 2, 1 }, { 1, 2 },
{ 1, 2, 3 }, { 1, 2, 3, 4 }, { 1 } };
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号