有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何返回第二个值

你知道如何在这段代码中返回第二个值吗

private void uploadImage_10() {
    final ProgressDialog pd = new ProgressDialog(this);
    pd.setMessage("Posting");
    pd.show();
    if (mImageUri != null&&mImageUri2 != null){
        final StorageReference fileReference = storageRef.child(System.currentTimeMillis()
                + "." + getFileExtension(mImageUri));
        final StorageReference fileReference2 = storageRef.child(System.currentTimeMillis()
                + "." + getFileExtension(mImageUri2));

        uploadTask2 = fileReference2.putFile(mImageUri2);
        uploadTask = fileReference.putFile(mImageUri);
        uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
            @Override
            public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                if (!task.isSuccessful()) {
                    throw task.getException();
                }
                return fileReference.getDownloadUrl();
            }
        }).addOnCompleteListener(new OnCompleteListener<Uri>() {
            @Override
            public void onComplete(@NonNull Task<Uri> task) {
                if (task.isSuccessful()) {
                    Uri downloadUri = task.getResult();
                    miUrlOk = downloadUri.toString();
                    Uri downloadUri2 = task.getResult();
                    miUrlOk2 = downloadUri2.toString();

                    DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Posts");

                    String postid = reference.push().getKey();

                        HashMap<String, Object> hashMap = new HashMap<>();
                        hashMap.put("postid", postid);
                        hashMap.put("postimage", miUrlOk);
                        hashMap.put("postimage2", miUrlOk2);
                        hashMap.put("description", description.getText().toString());
                        hashMap.put("publisher", FirebaseAuth.getInstance().getCurrentUser().getUid());

我想返回fileReference。getDownloadUrl();和文件引用2。getDownloadUrl();但我不知道怎么做


共 (1) 个答案

  1. # 1 楼答案

    在一个方法中不能返回两个值,除非在列表中传递它们

    当前的需求可以通过以下单独的方法传递StorageReference来实现

    private void continueWithTask(StorageReference  reference){
    uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
                @Override
                public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                    if (!task.isSuccessful()) {
                        throw task.getException();
                    }
                    return reference;
                }
            }
    

    以后像这样称呼他们continueWithTask(fileReference)&;continueWithTask(文件引用2)