我一直在Java编程中忽略了这一点,但现在我真的想知道原因。 这是一个示例方法:
public void time()
{
final Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
int i = t;
public void run() {
System.out.println(i--);
if (i< 0)
{
startActivity(intent);
timer.cancel();
}
}
}, 0, 1000);
}
我不明白这是怎么可能的,谢谢。
答案 0 :(得分:1)
如果您指的是new TimerTask()
,那么它不是一种方法。单词new
表示正在使用其构造函数创建类TimerTask
的新实例。因此该参数是使用其构造函数创建的TimerTask类的实例。这不是一种方法。
下面的全部内容只是创建一个TimerTask实例:
new TimerTask() {
int i = t;
public void run() {
System.out.println(i--);
if (i< 0)
{
startActivity(intent);
timer.cancel();
}
}
}, 0, 1000);
您可以很好地初始化变量,然后将该变量作为参数传递。这意味着一样。
答案 1 :(得分:0)
在您给出的示例中,没有任何方法可用作参数。但是,有一个匿名类(TimerTask
)正在使用自定义实现进行实例化。
答案 2 :(得分:0)
import javax.swing.JFrame;
public class Run {
public static GameAim gui=new GameAim();
public static void main(String[] args){
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setTitle("Aim Training");
gui.setSize(1280, 800);
gui.setVisible(true);
gui.setLocation(100,50);
gui.setResizable(false);
gui.openFile();
gui.readFile();
gui.closeFile();
}
}
不是一种方法,但您创建的new TimerTask()
以anonymous inner class
结尾。所以基本上你没有将方法作为参数传递,而是传递semicolon
类的实例。这link解释得很清楚。