首页 > 解决方案 > ListArray 返回一个空列表

问题描述

使用 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
    }

标签: javaandroidarraylistfirebase-mlkit

解决方案


推荐阅读