1、对于静态方法,怎么设计成模板?
如下面代码:我想要在main函数中直接调用showTime()方法,则showTime()方法必须是静态的,从而模板类ShowTime中的方法showTime()和run()也必须是静态的,但是如果定义成abstract static void run();则会报错,因为abstract和static不能同时存在,请问该怎么办?
- package chapter12;
- import java.io.*;
- class CopyMedia extends ShowTime
- {
- public static void main(String [] args)
- {
- showTime();
- }
- public static void run()
- {
- try
- {
- copyMp3();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- //复制图片文件
- public static void copyPic() throws IOException
- {
- }
- //复制mp3文件
- public static void copyMp3() throws IOException
- {
-
- }
- }
- //下面是显示程序运行时间的模板类
- abstract class ShowTime
- {
- public static void showTime()
- {
- long start =System.currentTimeMillis();
- run();
- long end =System.currentTimeMillis();
- System.out.println((end-start)+"毫秒");
- }
- abstract static void run();//这里编译的时候会报错,abstract和static 不能同时存在
- }
复制代码 2、对于上面的代码中,如果我想分别显示复制图片文件和复制mp3文件的时间,又该如何实现?
因为模板中showTime()方法中显示的是run()方法的运行时间,总不能每次运行我要去修改代码?
我的问题是该如何实现把要运行的方法作为参数传给run方法?
即:在main方法中,实现类似效果:
showTime(复制图片);
showTime(复制MP3); |