如何在不创建新实例 Kotlin 的情况下获取变量
How can I get a variable without creating a new instance Kotlin
我正在学习 Kotlin,但遇到了一些问题。
我想从另一个 class 获取一个变量,但是当我调用它时,有一个 class 的新实例拥有该变量。
在 Java,我们正在这样做
class Main {
public static void main(String[] args) {
SomeText.text = "another text";
System.out.println(SomeText.text);
}
}
class SomeText {
public static String text = "My Text";
}
结果是“另一个文本”。
但是在 Kotlin 中,如果我使用这个:
fun main(args: Array<String>) {
SomeText().text = "Another text"
println(SomeText().text)
}
class SomeText{
var text = "My Text"
}
结果是“我的文本”。
您知道如何在不创建新实例的情况下获取变量并对其进行编辑吗?
我尝试了 SomeText::text
但它 return 是 KMutableProperty1 而不是字符串。
您可以使用 companion objects 在 Kotlin 中模拟 static
。所以下面在Java
class SomeText {
public static String text = "My Text";
}
将使用 Kotlin
class SomeText {
companion object {
var text = "My Text"
}
}
然后,您只需要更新您的 main
:
fun main(args: Array<String>) {
SomeText.text = "Another text"
println(SomeText.text)
}
Kotlin 没有静态方法和 class,但您可以使用伴随对象:
fun main(args: Array<String>) {
SomeText.text = "Another text"
println(SomeText.text)
}
class SomeText {
companion object {
var text = "My Text"
}
}
我正在学习 Kotlin,但遇到了一些问题。
我想从另一个 class 获取一个变量,但是当我调用它时,有一个 class 的新实例拥有该变量。
在 Java,我们正在这样做
class Main {
public static void main(String[] args) {
SomeText.text = "another text";
System.out.println(SomeText.text);
}
}
class SomeText {
public static String text = "My Text";
}
结果是“另一个文本”。
但是在 Kotlin 中,如果我使用这个:
fun main(args: Array<String>) {
SomeText().text = "Another text"
println(SomeText().text)
}
class SomeText{
var text = "My Text"
}
结果是“我的文本”。
您知道如何在不创建新实例的情况下获取变量并对其进行编辑吗?
我尝试了 SomeText::text
但它 return 是 KMutableProperty1 而不是字符串。
您可以使用 companion objects 在 Kotlin 中模拟 static
。所以下面在Java
class SomeText {
public static String text = "My Text";
}
将使用 Kotlin
class SomeText {
companion object {
var text = "My Text"
}
}
然后,您只需要更新您的 main
:
fun main(args: Array<String>) {
SomeText.text = "Another text"
println(SomeText.text)
}
Kotlin 没有静态方法和 class,但您可以使用伴随对象:
fun main(args: Array<String>) {
SomeText.text = "Another text"
println(SomeText.text)
}
class SomeText {
companion object {
var text = "My Text"
}
}