当前位置: 首页 > 知识库问答 >
问题:

如何在私有类之外调用它的属性?

龚远
2023-03-14
if(imageUri != null){
    StorageReference fileReference = storageReference.child(System.currentTimeMillis()+"."+getFileExtension(imageUri));
    fileReference.putFile(imageUri).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 storageReference.getDownloadUrl();
         }
    }).addOnCompleteListener(new OnCompleteListener<Uri>(){
        @Override
        public void onComplete(@NonNull Task<Uri> task){
            if(task.isSuccessful()){
                Uri downloadUri = task.getResult();
                u.setImageURL(downloadUri.toString());
                Toast.makeText(TelaRegistro.this, u.getImageURL(), Toast.LENGTH_LONG).show();
            }else{
                u.setImageURL("Sem imagem!");
            }
        }
    });
}else{
    u.setImageURL("Sem imagem!");
}
Uri downloadUri = task.getResult();
u.setImageURL(downloadUri.toString());
Toast.makeText(TelaRegistro.this, u.getImageURL(), Toast.LENGTH_LONG).show();
Toast.makeText(TelaRegistro.this, u.getImageURL(), Toast.LENGTH_LONG).show();

我是一个初学程序员,我已经试着解决这个问题几天了,我不知道还能做什么。你能帮我吗?

共有1个答案

刁丰羽
2023-03-14

我没有完全理解您所说的私有类和在它之外获取值的含义,与downloadurl()有关,这不是类的属性。

但我从你的问题中了解到,你想要检索你的图像链接的价值,而不是你现在得到它的地方。

您可以在该位置再次复制此代码,因为Firebase调用是异步的,所以在EventListener之外,您可能会获得存储从Firebase检索的值的变量的空值。

 类似资料:
  • 问题内容: 我有一个具有称为的私有方法的类。我想从外面打电话。我认为应该可以反思,但是我得到了。有任何想法吗??? 问题答案: 利用使用其之前的Method对象的方法。

  • 问题内容: 因此,此代码的输出为。现在,我想到了一个问题:作为 派生 类对象的 po 怎么能调用作为基类的 PrivateOverride 的私有方法? 问题答案: 因为您在类中定义了main方法。如果将main方法放在Derived类中,它将无法编译,因为在该类中不可见。 class中的po.f()调用不是多态的,因为in 类为,所以in class中的值不会被覆盖。

  • 在 Python 的面向对象编程中,私有属性是只能在类的实例方法中访问的属性,不允许在外界访问私有属性。 1. 私有属性的定义 1.1 定义 在属性名称前加上前缀 __,表示该属性为私有属性,示例代码如下: class Object: def method(self): self.__private_attribute = 123 在第 3 行,创建一个私有属性 __pr

  • 问题内容: 是否可以在ES6类中创建私有属性? 这是一个例子。如何防止访问? 问题答案: 专用字段(和方法)正在ECMA标准中实现。您可以立即从[babel 7和Stage3预设开始使用它们。

  • 我想测试,为此,我需要模拟调用。为此,我尝试了以下方法,但没有成功: 仍然在调用真正的而不是返回模拟响应。 如何使用Mockito模拟对的调用?