我正在查看Handlers,其中的post方法接受Runnable类型的参数。我遇到了以下代码 fragment
final Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
timeView.clearComposingText();
Integer hours = seconds/3600;
Integer minutes = (seconds % 3600)/60;
Integer secs = seconds % 60;
String time = String.format("%d:%02d:%02d",hours,minutes,secs);
timeView.setText(time);
if(running)
{
seconds++;
}
handler.postDelayed(this,1000);
}
});
既然Runnable是Java中的一个接口(interface),我们如何能够直接创建一个新的Runnable实例呢?
最佳答案
匿名类可以实现接口(interface),这是您唯一一次看到实现不带“implements”关键字的接口(interface)的类。
完整的示例可能如下所示:
public class MyClass {
public interface A {
void foo();
}
public interface B {
void bar();
}
public interface C extends A, B {
void baz();
}
public void doIt(C c) {
c.foo();
c.bar();
c.baz();
}
public static void main(String[] args) {
MyClass mc = new MyClass();
mc.doIt(new C() {
@Override
public void foo() {
System.out.println("foo()");
}
@Override
public void bar() {
System.out.println("bar()");
}
@Override
public void baz() {
System.out.println("baz()");
}
});
}
}
这个例子的输出是:
foo()
bar()
baz()
关于java - 了解 Android 中的 Runnable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37771251/