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

如何在Kotlin中“静态”访问类的一个成员?

谭晓博
2023-03-14

在Java和Android中,我们可以这样做:

public static MyApplication extends Application {
   private static Context appContext;

   public void onCreate() {
      appContext = this;
   }

   public static Context getAppContext() {
      return appContext;
   }
}

这样,在其他地方,我们就可以做到这一点:

appContext = MyApplication.getAppContext();

//编辑也许我应该说得更清楚些。我的意思是我们如何才能用Kotlin写上面的内容,用Kotlin。

共有1个答案

鱼浩荡
2023-03-14

在Kotlin中,这被称为“伴侣对象”:

class MyApplication: Application {
    companion object {
        var appContext: Context? = null
            private set
    }
}
 类似资料:
  • null 从我的类中调用这些代码的工作方式与我预期的一样。但是,我想在Kotlin子类之外调用其中的一个方法。 如果从不同的Kotlin类尝试,则会出现以下编译错误: 未解析得引用:completeWakefulIntent

  • 问题内容: 我有一些用Java编写的代码。对于新课程,我计划在Scala中编写。我在访问基类的受保护静态成员时遇到问题。这是示例代码: Java代码: 标量代码: 有什么建议吗?我如何在不修改现有基类的情况下解决这个问题 问题答案: 这在Scala中是不可能的。由于Scala没有记号,您不能访问父类的成员。这是一个已知的限制。 解决方法是执行以下操作: 现在,您可以改为从这个新类继承,并通过get

  • 我有以下设计,我想在Kotlin中实现: null 有没有更好的,更Kotlin的方法?

  • 我有一个名为ClassA的类,我希望它是完全私有的,除了一个可以接收并执行代码块的方法。我希望我传递给这个方法的代码块能够调用ClassA的私有成员。这是我现在所拥有的一个非常简化的表示: 上面的代码无法编译,因为在ClassA中只是私有访问。如果我更改它对公共的访问,则此代码工作正常。有没有办法我可以在我从 传入的块中引用这个 ,而不必公开该方法?

  • 问题内容: 如果我有以下python代码: 它抱怨 如何在方法中访问类/静态变量? 问题答案: 代替使用或。分配给将创建一个静态变量,分配给将创建一个实例变量。