小小幻术师
倩与倩寻
@CallerSensitive
public static Object newProxyInstance(ClassLoader loader,
Class<?>[] interfaces,
InvocationHandler h)
throws IllegalArgumentException{
...
return cons.newInstance(new Object[]{h});
}
这个方法返回的是一个对象,一个动态生成的代理类的对象,moveable.getClass().getName()得到的是动态生成的这个代理类的名字。
慕粉3351191
通过java反射技术,使得被代理类与生成的代理类拥有相同的接口,只不过两个类对接口中的实现方法不同,代理类中的方法就是对被代理类中的方法的一个增强。既然涉及到反射,那么具体调用哪个方法就是在运行时才能确定,你运行时调用哪个,它就执行哪个
假蛙工程师
qq_殇影_0
被final修饰的类不能被继承
qq_为了美好的明天
这个好像设置一下就能看,默认看不了可以参见下面的设置
不编译某个MODULES的方法,但在视图上还是有显示
SETTINGS -> COMPILER -> EXCLUDES ->
不编译某个MODULES,并且不显示在视图上
MODULES SETTINGS -> (选择你的MODULE) -> SOURCES -> EXCLUDED -> 整个工程文件夹
__Sunny
这个好像是老师自己写的吧,你看下前边的视频
时而abc
我把它写在我的博客里了https://my.oschina.net/zjllovecode/blog/1533714
hfismyangel
请百度 代理的意义
banlureader
invocationHandler源码:
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable;
有参数时会传进去参数值,
当没有参数时,可以理解为参数值为null(也就是m.move()使用时,可以理解为也会有个参数,只是值是null)
也就是说:视频里m.invoke(target) == m.invoke(target,null)
测试时:
m.move("200");
zypshe
试试getSimpleName()
Nicholas_
spring AOP