使用List时,它返回函数内列表的值,但在函数范围之外,则返回空列表。
public List<Rect> face_list = new ArrayList<>();
public void mlkit(FirebaseVisionImage image) {
face_list.clear();
Task<List<FirebaseVisionFace>> result =
detector.detectInImage(image)
.addOnSuccessListener(
new OnSuccessListener<List<FirebaseVisionFace>>() {
@Override
public void onSuccess(List<FirebaseVisionFace> faces) {
for (FirebaseVisionFace face : faces) {
Rect bounds = face.getBoundingBox();
face_list.add(bounds);
Log.d("cns",face_list.toString()); // this returns face_list
}
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});
Log.d("cns",face_list.toString()); // this returns an empty list
}