gpt4 book ai didi

java - 如何扩展匿名内部类中某些变量的范围

转载 作者:行者123 更新时间:2023-11-30 02:48:50 24 4
gpt4 key购买 nike

我有一个匿名类:

filepath.putFile(userItemPhotoUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Uri downloadUri = taskSnapshot.getDownloadUrl();
Toast.makeText(MainActivity.this, "Uploading finished ..", Toast.LENGTH_SHORT).show();
}
});

我想将 downloadUri 的范围扩展到其外部 block 。

我尝试过,但没有成功。在外部 block 中声明最终变量将不起作用,因为我们无法在内部再次初始化它。

最佳答案

在这里,我建议使用“Holder”类来帮助存储值。这是一个非常有用的机制,允许您访问数据。就我个人而言,don't think that having public scoped variables are a good idea .

所以你可以有一个带有 getters/setters 的持有者类型对象来持有:

public class HoldThis {

private Uri downloadUri;

public void setUri(Uri uri){
this.downloadUri = uri;
}

public Uri getUri(){
return downloadUri;
}

}

您还可以选择执行以下操作:

外部类:final Uri []uri = new Uri[1]; 然后您可以通过执行 uri[0] = taskSnapshot.getDownloadUrl( );

关于java - 如何扩展匿名内部类中某些变量的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39327022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com