带有伴生对象的简单示例类classMyClass{companionobject{valtest=25}}值test可以通过MyClass.test访问,但是如何从一个MyClass的实例?如果我有valsample=MyClass(),我如何从sample中访问测试?sample::class.test不正确....有办法吗?问题已经提出:'为什么不简单地使用MyClass.test'?我更愿意将问题保留为“如何”而不是“为什么”,但既然有人问过,我会尝试“为什么”。相同的也可以适用于这些方法。为什么不在类中拥有静态函数,而只需调用Class.function()并将对象作为参数之一
带有伴生对象的简单示例类classMyClass{companionobject{valtest=25}}值test可以通过MyClass.test访问,但是如何从一个MyClass的实例?如果我有valsample=MyClass(),我如何从sample中访问测试?sample::class.test不正确....有办法吗?问题已经提出:'为什么不简单地使用MyClass.test'?我更愿意将问题保留为“如何”而不是“为什么”,但既然有人问过,我会尝试“为什么”。相同的也可以适用于这些方法。为什么不在类中拥有静态函数,而只需调用Class.function()并将对象作为参数之一
我有一个ActivityclassDummyActivity:Activity(){companionobject{@JvmStaticfunonNewIntent(context:Context):Intent{valintent=Intent(context,DummyActivity.javaClass)returnintent}}overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)}}在Man
我有一个ActivityclassDummyActivity:Activity(){companionobject{@JvmStaticfunonNewIntent(context:Context):Intent{valintent=Intent(context,DummyActivity.javaClass)returnintent}}overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)}}在Man
我想以这种方式在companionobject中使用泛型:classFoo{/*...*/companionobject{funfoo(args:List){/*...*/}}}不幸的是,上面的代码引发了Unresolvedreference:T错误。 最佳答案 你要么需要像这样声明泛型funfoo(args:List){...}或者,如果你不关心类型,你可以使用星形投影funfoo(args:List){...} 关于generics-如何在伴随对象中使用泛型,我们在StackOver
我想以这种方式在companionobject中使用泛型:classFoo{/*...*/companionobject{funfoo(args:List){/*...*/}}}不幸的是,上面的代码引发了Unresolvedreference:T错误。 最佳答案 你要么需要像这样声明泛型funfoo(args:List){...}或者,如果你不关心类型,你可以使用星形投影funfoo(args:List){...} 关于generics-如何在伴随对象中使用泛型,我们在StackOver
有一个密封类:sealedclassAlphabet(valname:String){objectA:Alphabet("A")objectB:Alphabet("B")objectC:Alphabet("C")objectD:Alphabet("D")objectE:Alphabet("E")companionobject{valarray=arrayOf(A,B,C,D,E)vallist=listOf(A,B,C,D,E)}overridefuntoString():String{returnname}}还有另一个类有伴生对象:classAlphabetMap{companion
有一个密封类:sealedclassAlphabet(valname:String){objectA:Alphabet("A")objectB:Alphabet("B")objectC:Alphabet("C")objectD:Alphabet("D")objectE:Alphabet("E")companionobject{valarray=arrayOf(A,B,C,D,E)vallist=listOf(A,B,C,D,E)}overridefuntoString():String{returnname}}还有另一个类有伴生对象:classAlphabetMap{companion
是否可以在Kotlin类中的initblock之前初始化companionobject?如果是这样,怎么做?如果没有,有没有办法完成同样的事情。我有以下场景,classA(valiname:String){init{foo.add(this)}companionobjectB{@JvmFieldvalSTATIC=A("hi")@JvmFieldvalfoo=mutableListOf()}funprintAllStatics(){for(ainfoo){print(a.iname)}}}调用printAllStatics会导致空指针异常。 最佳答案
是否可以在Kotlin类中的initblock之前初始化companionobject?如果是这样,怎么做?如果没有,有没有办法完成同样的事情。我有以下场景,classA(valiname:String){init{foo.add(this)}companionobjectB{@JvmFieldvalSTATIC=A("hi")@JvmFieldvalfoo=mutableListOf()}funprintAllStatics(){for(ainfoo){print(a.iname)}}}调用printAllStatics会导致空指针异常。 最佳答案