Rom*_*man 7 java concurrency invokelater
我无法理解这个简单的代码:
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释一下它是如何工作的(简单来说因为我是新手)?这个简短的代码是这个更大的代码的一部分.
更具体地说,我有以下问题:
我想再强调一次,我是一个新手,使用"特殊"和"技术"词语会产生更多问题.
如果您决定帮助我,请提前感谢您!
dan*_*ben 11
我能给出的最短答案是:
Runnable
是Java中的一个接口,表示定义run
方法的类型.任何实现此接口的类都必须提供实现run
. Runnable
s表示要由系统的其他部分执行的任务. Thread
是一个众所周知的Runnable
.
当你有代码看起来像new InterfaceName() { //implementation }
,这称为匿名类.匿名类的要点是创建一个实现接口类型的一次性类.这个类没有名字,因此我们再也不能引用它了.它只在这里使用.
在不了解Swing的情况下,它看起来像SwingUtilities.invokeLater()
接受了一个Runnable
......好吧,我猜它稍后会调用它(稍后可能会在JavaDocs中描述多少).但是,你run
在这里定义为另一个方法调用的原因是内部的一些代码SwingUtilities
将调用此run
方法Runnable
; 实际上,所有它可能知道的Runnable
是它定义了一个带签名的方法public void run()
,因为这是Runnable
接口中定义的唯一方法.
嗯,我想这毕竟不是太短.
归档时间: |
|
查看次数: |
6676 次 |
最近记录: |