gpt4 book ai didi

java - 在 kotlin 中沟通父类及其内部类的最佳方式是什么?

转载 作者:行者123 更新时间:2023-12-01 16:43:07 24 4
gpt4 key购买 nike

在java中,如果我有一个类,并且在它里面有另一个子类,那么子类可以访问其父类方法,但在kotlin中同样会给出错误

class A {
static int methodSum(int a, int b) {
return a+b;
}

static final class Try {
void tryPrint() {
System.Out.println(methodSum(2,3).toString())
}
}
}

但同样我无法在 Kotlin 中实现它给我的错误。实现这一目标的最佳方法是什么?

最佳答案

参见Nested and Inner Classes在 Kotlin 文档中。当您使用“内部类”时,该类将始终保留对外部类对象的引用。

class Outer {
private val bar: Int = 1
inner class Inner {
fun getOuter() = this@Outer
fun foo() = bar
}
}

val outerObj = Outer().Inner().getOuter()
val bar = Outer().Inner().foo()

更新:因为 gidds 在他的评论中完美地解释了这一点:

To clarify: like Java, Kotlin offers both inner classes (which have a reference to an instance of the outer class), and nested classes (which don't). But they differ in their default: Java assumes an inner class unless you use static to mark it as nested; while Kotlin assumes a nested class unless you mark it with inner.

关于java - 在 kotlin 中沟通父类及其内部类的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58874629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com