讲师回答 / David
                                
                                                            您好:handler类中public Object invoke(Object proxy, Method method, Object[] args)...方法,我们使用“method.invoke(target);”而非使用“method.invoke(proxy);”是通过反射的机制调用目标对象的方法。视频中模拟JDk动态代理,所以讲proxy也作为入参,虽然没有使用到proxy,并不意味着JDK动态代理它没有被使用到,有兴趣可以研究一下源码内容。
                            
                        
                        2015-02-11
                
            
                                已采纳回答 / David
                                
                                                            1、这句话的意思是通过方法的反射,得到Moveable类的某个方法;2、根据API中的定义,Class.getSimpleName()方法是获取源代码中给出的‘底层类’简称 (Moveable)而Class.getName();以String的形式,返回Class对象的‘实体’名称 (com.imooc.proxy.Moveable)
                            
                        
                        2015-01-27
                
            
                                已采纳回答 / David
                                
                                                            您好:        我们在课程中介绍到了静态代理,讲解他的不足:会使我们系统内的类的规模增大(类膨胀),并且不易维护;并且由于被代理类和代理类的功能 本质上是相同的,被代理类只是起到了中介的作用,这种代理在系统中的存在,导致系统结构比较臃肿和松散。       为了解决这个问题,所以要动态地创建Proxy:在运行状态中,需要代理的地方,动态地创建一个Proxy,用完之后,就会销毁,这样就可以避免了Proxy 角色的class在系统中冗杂的问题了。       至于视频中演示动态代理的产生(生成java文...
                            
                        
                        2014-12-19
                
            
                                已采纳回答 / David
                                
                                                            您好,很高兴收到你的问题,解答如下:JDK动态代理只能代理实现了接口的类,不是这个类(比如Car,实现Moveable接口)需要实现InvocationHandler,而是他的处理器(LogHandler)需要实现InvocationHandler接口。JDK动态代理它是在运行时生成的class,在生成它时你必须提供一组interface给它,然后该class就宣称它实现了这些 interface。你当然可以把该class的实例当作这些interface中的任何一个来用。当然,这个Dynamic Pro...
                            
                        
                        2014-12-16
                
            
                                已采纳回答 / David
                                
                                                            我们看一下示例中的代码:/**  * 拦截所有目标类方法的调用  * obj  目标类的实例  * m   目标方法的反射对象  * args  方法的参数  * proxy代理类的实例  */ @Override public Object intercept(Object obj, Method m, Object[] args,   MethodProxy proxy) throws Throwable {  System.out.println("日志开始...");  //代理类调用父类的方法 ...
                            
                        
                        2014-12-16
                
             
             
        











