[英]Callbacks inside a loop : how can i use parameter of loop in callback?
在循环中,我需要多次调用带有回调的方法。 如何在onObjectChecked()中使用参数parsedObject?
@Override
public void onObjectsMustBeParsed(String parsableObjects) {
String[] parsedObjects = parsableObjects.split(",");
for (String parsedObject : parsedObjects){
checkObject(parsedObject, new CheckObjectCallback() {
@Override
public void onObjectChecked() {
//Object check
// here call method with parameters : parsedObject
// Example : transformObject(parsedObject);
}
@Override
public void onError() {
// Object not checked
}
});
}
}
注意:当我没有循环时,我使用最终变量。 我不知道这是一个好习惯! 请告诉我是否!
如果您可以控制这部分代码,则应该更改体系结构,并将parsedObject
作为参数提供给parsedObject
onObjectChecked()
。
但是要对当前代码进行一些更改,您可以实现一个简单的内部类(不是匿名的)来保存parsedObject
。
@Override
public void onObjectsMustBeParsed(String parsableObjects) {
String[] parsedObjects = parsableObjects.split(",");
MyCheckObjectCallback callback = new MyCheckObjectCallback();
for (String parsedObject : parsedObjects) {
callback.parsedObject = parsedObject;
checkObject(parsedObject, callback);
}
}
private class MyCheckObjectCallback implements CheckObjectCallback {
String parsedObject = null;
@Override
public void onObjectChecked() {
// Object check
// here call method with parameters : parsedObject
// Example : transformObject(parsedObject);
}
@Override
public void onError() {
// Object not checked
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.