对于java反射的使用,主要是通过类名创建类的class对象,或是通过方法名创建Method对象
一 静态类
使用情况一:类似命令模式,输入一个命令,需要执行相应的一个方法。而命令很多,于是执行方法也很多,写if-else或是swith都会写很多,这个时候
可以将命令和方法组成键-值对,然后,通过这个键值对获取命令对应要调用的方法,然后通过:
Method method = Util.class.getMethod(methodName,paramType);//第一个参数为类对象,静态方法名,
//第二个参数为方法的参数类型,如String.class,Integer.class等
method.invoke(null,params); //第一个参数是类的对象,对于静态方法为null即可,第二个参数为方法需要传入的参数数组
注意:在使用中会出现告警提示,这些很正常。
java的timer使用
一般需要与timetask配合使用:
1)新建一个类,继承 TimeTask类,并实现run方法。
2)在需要定时的地方新建Timer,并执行调度方法
Timer timer = new Timer();
timer.schedule(timeTask,delay,period)//第一个参数为1)步新建任务,第二个参数为当前时间开始,延迟多少时间执行任务,第三个为间隔时间。
注意,时间单位均为毫秒。
3)当城要取消Timer时,执行timer.cancle();方法即可,若当timer结束就想结束程序,一般并不会马上结束,此时timer需要等待GC进行回收,所以此时如果想快速结束,
可以在Timer.run()代码的最后加上一句:System.gc();主动要求垃圾回收,一般都回马上回收,从而使程序退出。
未完待续。。。。