|
|
1
0
如果我说对了,你想要这样的东西:
|
|
2
0
这似乎管用。只需引用类的名称就足够了,而不必保留对类的引用的变量。但是,若要从函数返回类的实例,返回类型必须是同伴:
这不是真正的单例,因为如果执行以下操作,您仍然可以创建新实例:
但是,如果您从未创建实例,而只是静态地引用函数,那么它的行为确实像一个单例,并且伴生对象中的任何私有变量的状态仍将保持不变。 更新: 我在Android开发人员网站上看到了这段代码,它显示了一个设置为singleton的类的示例:
但应该指出的是,这个例子需要函数首先返回一个实例来检查是否设置了实例变量,如果没有,则创建一个新实例。我不知道这是什么意思,因为调用函数你已经有一个实例。那么为什么还要创建一个新实例呢?似乎没有任何意义。 |
|
|
3
0
要使类成为子类,不能在伴生对象中定义函数。但是您可以使类成为抽象类,因此除非子类化,否则无法实例化它。然后让您的同伴对象扩展抽象类,使其具有所有可用的函数。
用法:
注意,您的singleton不是TestRunner的实例。它是TestRunner子类的单例实例。但是由于没有定义额外的函数,也没有重写任何内容,所以它的行为与TestRunner完全一样。 如果你想要一个子类:
同伴不是子类,但他们抽象的父母可以是。 |
|
|
A. Cedano · 如何在UIState中包含错误案例? 1 年前 |
|
Murilo · Jetpack编写导航栏项目图标 1 年前 |
|
zplot · 使用具有抽象嵌套类的泛型时类型不匹配 1 年前 |