我有 2 个 kotlin 类,它们都实现了接口myVariables。里面myVariables是一个名为 的变量money。我想要做的是在两个类中使用相同的变量(并保持其值)。这是一个很好的方法吗?
class MainActivity : myVariables, AppCompatActivity() {override val money = 0}
abstract class ShopActivity : myVariables, AppCompatActivity() {override val money = 0}
Run Code Online (Sandbox Code Playgroud)
界面:
interface myVariables {
val money: Int
}
Run Code Online (Sandbox Code Playgroud)
在我的两个类中使用相同变量而不重新定义其值的更好方法是什么。例如,如果该变量在 MainActivity 类中的值为 5,我想在 ShopActivity 类中使用值为 5 的相同变量。
如果有任何意义,我想要的效果就像这个变量在使用它的文件中是全局的一样。
你正在寻找单身人士。在 Kotlin 中创建它们的惯用方法是创建对象(而不是类),它将保存您的变量。像这样:
object MyVariables {
const val string = "foo"
val pops = 4
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样在你的课堂上使用它:
class MyClass {
fun myMethod() {
println(MyVariables.string)
}
}
Run Code Online (Sandbox Code Playgroud)
当然,您可以使用vars,val如果您需要更改它们,则不能使用s 。但是请注意,拥有全局可变状态通常是一个坏主意,因为很难跟踪代码,变量是从哪里改变的。
另请注意,通常以小写字母开头的接口名称是一个坏主意,因为它违反了约定并使代码可读性降低。我花了几秒钟才明白那myVariables不是变量名。
| 归档时间: |
|
| 查看次数: |
1848 次 |
| 最近记录: |