在循环中,我需要多次调用带回调的方法。我怎样才能在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
}
});
}
}
注意:当我没有循环时,我使用最终变量。我不知道这是不是一个好习惯!请告诉我它是不是!
答案 0 :(得分:0)
如果您可以控制这部分代码,则应改变您的体系结构,并将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
}
}