@CallerSensitive public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException{ ... return cons.newInstance(new Object[]{h}); } 这个方法返回的是一个对象,一个动态生成的代理类的对象,moveable.getClass().getName()得到的是动态生成的这个代理类的名字。
这个好像设置一下就能看,默认看不了可以参见下面的设置
不编译某个MODULES的方法,但在视图上还是有显示
SETTINGS -> COMPILER -> EXCLUDES ->
不编译某个MODULES,并且不显示在视图上
MODULES SETTINGS -> (选择你的MODULE) -> SOURCES -> EXCLUDED -> 整个工程文件夹
这个好像是老师自己写的吧,你看下前边的视频
我把它写在我的博客里了https://my.oschina.net/zjllovecode/blog/1533714
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");
试试getSimpleName()