【02】 反射存在的意义
其实 Java 反射是为数不多我感觉很刺激的机制,为何这么说,因为 Cpp 没有明确的加入(过几天 C++20 大会可能有大佬讲,一定要去听)
C++ 使用PG 函数化编程的时候一般习惯于,将方法作为参数传入,此时传入的是函数指针,但是java没有指针怎么办吧?
强拆,使用函数名,参数类型生成Method 方法,使用invoke 进行绑定对应实例对象,以及参数
package xvy; import java.lang.reflect.Constructor; import java.lang.reflect.Method; public class _FuncPoint { public void test(String []arg) { for(String s : arg) { System.out.println(s); } } public static void main(String []arg) throws Exception { Class<_FuncPoint> s = (Class<_FuncPoint>) Class.forName("xvy._FuncPoint"); Constructor con =(Constructor)s.getConstructor(); _FuncPoint po = (_FuncPoint)con.newInstance(); Method m = s.getMethod("test",String[].class); String [] str = new String [] {"aaa","bbb"}; m.invoke(po,new Object[]{str}); } }
不摸着石头过河,难道要在温柔乡睡到天昏地暗。