I dieses Verfahren in Kotlin geschrieben und analysiert, um den Bytecode:Kotlin Objekt vs Begleiter-Objekt vs Paket scoped Methoden
Situation 1
class A {
object b {
fun doSomething() {}
}
}
Situation 2
class A {
companion object b {
fun doSomething() {}
}
}
Situation 3
fun doSomething() {}
Bytecode Ergebnis
- Situation 1: Klasse
Test$asb
,public final doSomething()I
- Situation 2: Klasse
Test$Companion
,public final doSomething()I
- Situation 3: Klasse
TestKt
,public final static doSomething()I
Meine Fragen sind:
Ich habe eine enum-Klasse, und ich möchte eine enum-Instanz mit einer enum-Variablen zurückgeben, zum Beispiel findById
(enum(id, color))
. Wie würde ich es tun? Begleitobjekt? Objekt?Es scheint die einzige Möglichkeit, eine echte statische Methode haben, ist in Paketebene, ohne Klassendeklaration. Aber das wird ein bisschen zu global. Gibt es eine Möglichkeit, über:
ClassName.staticMethod
darauf zuzugreifen, staticMethod ist wirklich statisch.Bereitstellung meaningfull Beispiele für Paket Erklärung Methoden, Begleitobjekt und Objekt.
Kontext. Ich habe in Kotlin programmiert und finde es erstaunlich. Aber manchmal muss ich eine Entscheidung treffen: zum Beispiel eine schwere unveränderliche Eigenschaft, die ich in Java als statisches Finale deklarieren würde, aber in Kotlin fällt es mir schwer, "ein Äquivalent zu finden".
Vielleicht könnte dies der Hilfe {http://stackoverflow.com/q/37794850/2804610} – EPadronU
In rega rds zu Ihrem letzten Absatz, ich glaube, diese Antwort könnte Ihnen helfen {http://stackoverflow.com/a/37944990/2804610} – EPadronU