java反射的Method回调

来源:互联网 发布:淘宝二手回收手机骗局 编辑:程序博客网 时间:2024/06/03 19:39

利用反射机制,获得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对象的回调功能的代码执行速度更快,更易维护
0 0
原创粉丝点击