利用反射机制,获得Employee的名字
public static void fn() { Employee e = new Employee("hssdst",50,new Date()); Employee e2 = new Employee("dfsfds",50,new Date()); try { Method m1 = Employee.class.getMethod("getName"); Method m2 = Employee.class.getMethod("raiseSalary", double.class); String n = (String) m1.invoke(e); System.out.PRintln(n);//hssdst } catch (Exception e1) { e1.printStackTrace(); } } 由于invoke()方法的参数和返回值必须的是object类型。这就导致必须经过多次的类型转换才能得到想要的类型,这样会导致编译器错过检查代码的机会。可能到下工程的FT阶段才会发现错误。并且,利用反射获得方法指针的代码要比仅仅直接调用方法慢一些。 因此,在必要的时候使用Method,其他情况使用接口或者内部类比较好。注:使用接口进行回调比使用Method对象的回调功能的代码执行速度更快,更易维护新闻热点
疑难解答