public Runnable updater = new Runnable()
{
@Override
public void run() {
obj.notifyDataSetChanged();
}
};
我是java的新手,我读到了这个代码区,并想知道我们何时需要这样的更新程序或实现Runnable接口的类。 要调用该更新程序,他们会这样做
handler = new Handler();
handler.post(updater);
我不明白这个的基本逻辑。
答案 0 :(得分:0)
我不了解其余的背景,但通过这种方式,您可以选择不同的行为"在您的对象Handler
中。由于我不知道您看到此示例的代码的上下文,我将尝试使用不同的类和方法来解释它:
比如说,例如,您希望能够在同一段代码中执行不同的行为,因此您可以创建新行为或从现有行为中进行选择,您可以:
class Operation {
Runnable operation = null;
private int result;
private int op1;
private int op2;
public Example(int op1, int op2) {
this.op1 = op1;
this.op2 = op2;
}
// ... more code ...
Runnable sum = new Runnable() {
public void run() { result = op1 + op2; }
}
Runnable minus = new Runnable() {
public void run() { result = op1 - op2; }
}
// ... more code ...
public void selectBehaviour(String behaviourName) {
// ... more code ...
// select behaviour
if("SUM".equals(behaviourName)) {
operation = sum;
} else if("MINUS".equals(behaviourName)) {
operation = minus;
} else {
// ... more code ...
}
}
public void perform() {
operation.run();
}
int getResult() {
return result;
}
}
这种情况非常普遍,在Java 8中,您将能够以这种方式编写您发布的代码:
public Runnable updater = () -> { obj.notifyDataSetChanged(); }
这不那么冗长。