Android Kotlin伴生异议未解决的引用
我有一个带有伴生对象的Kotlin类,它可以看到父类的一些字段,但看不到其他字段。Android Studio中没有可导入的选项Android Kotlin伴生异议未解决的引用,android,kotlin,companion-object,Android,Kotlin,Companion Object,我有一个带有伴生对象的Kotlin类,它可以看到父类的一些字段,但看不到其他字段。Android Studio中没有可导入的选项 class A{ var a = 1 var b = 2 companion object { a += 1// visible and imported b += 1// unresolved reference } } 我不想在companion对象内创建此变量。您无法从静态
class A{
var a = 1
var b = 2
companion object {
a += 1// visible and imported
b += 1// unresolved reference
}
}
我不想在companion对象内创建此变量。您无法从静态上下文(companion)访问实例变量,这与Java代码相同您无法从静态上下文(companion)访问实例变量,这与Java代码相同您绝对不正确 您根本无法访问同伴对象中的类成员。但是你可以在课堂上使用同伴的成员 如果您看到kotlin字节码,您将看到伴生对象编译为
public static final class Companion {
private Companion() {
}
// $FF: synthetic method
public Companion(DefaultConstructorMarker $constructor_marker) {
this();
}
}
因为Companion是静态类
,所以它可以在声明它的地方没有类的情况下存在
因此,在您的情况下,您无法访问a和b,因为它们可能不存在
它们对您来说也是不可访问的,但您可能发现了IDE错误,并且它不会给您带来错误您完全不正确 您根本无法访问同伴对象中的类成员。但是你可以在课堂上使用同伴的成员 如果您看到kotlin字节码,您将看到伴生对象编译为
public static final class Companion {
private Companion() {
}
// $FF: synthetic method
public Companion(DefaultConstructorMarker $constructor_marker) {
this();
}
}
因为Companion是静态类
,所以它可以在声明它的地方没有类的情况下存在
因此,在您的情况下,您无法访问a和b,因为它们可能不存在
它们对您来说也是不可访问的,但您可能发现了IDE错误,并且不会给您带来错误
Android Studio导入了一个类变量。在imports中,我看到import package.A.A,但没有import package.A.b
import package.A.A
对于类属性A
来说根本没有意义,而且伴生对象也不需要从它的伴生类导入。我最好的猜测是它是从另一个包中的对象导入的
Android Studio导入了一个类变量。在imports中,我看到import package.A.A,但没有import package.A.b
import package.A.A
对于类属性A
来说根本没有意义,而且伴生对象也不需要从它的伴生类导入。我最好的猜测是它是从另一个包中的对象导入的。无法复制。两个都给出了一个错误A在同伴内部也不可见object@TimCastelijns@mTak,Android Studio导入了一个类变量。在导入中,我看到了import package.A.A
,但没有import package.A.b
无法复制。两个都给出了一个错误A在同伴内部也不可见object@TimCastelijns@mTak,Android Studio导入了一个类变量。在imports中,我看到的是导入包.A.A
,但不是导入包.A.b
,但可以访问其他包。。。我认为这两个变量没有区别。也许是安卓工作室的问题,它不导入它们,但其他人可以访问。。。我认为这两个变量没有区别。可能是Android Studio的问题,它没有导入它们。我可以访问A,但不能访问B。可能是因为Kotlin编译期间的问题。我可以访问A,但不能访问B。可能是因为Kotlin编译期间的问题