मैं Kotlin में यह तरीकों लिखा है और बाईटकोड विश्लेषण किया:Kotlin वस्तु बनाम साथी-वस्तु पैकेज बनाम scoped तरीकों
स्थिति 1
class A {
object b {
fun doSomething() {}
}
}
स्थिति 2
class A {
companion object b {
fun doSomething() {}
}
}
स्थिति 3
fun doSomething() {}
बाईटकोड परिणाम
- स्थिति 1: वर्ग
Test$asb
,public final doSomething()I
- स्थिति 2: कक्षा
Test$Companion
,public final doSomething()I
- स्थिति 3: वर्ग
TestKt
,public final static doSomething()I
मेरे प्रश्न हैं:
मेरे पास एक enum क्लास है, और मैं एक enum variable को एक enum variable को वापस करना चाहता हूं, उदाहरण के लिए, ढूँढें ById
(enum(id, color))
। मैं यह कैसे करूंगा? सहयोगी वस्तु? आपत्ति?क्लास घोषणा के बिना पैकेज स्तर में असली स्थिर विधि होने का एकमात्र तरीका लगता है। लेकिन यह थोड़ा सा वैश्विक बन जाता है। क्या इसका उपयोग करने के लिए कोई तरीका है:
ClassName.staticMethod
, staticMethod वास्तव में स्थिर है।पैकेज घोषणा विधियों, साथी वस्तु और वस्तु के सार्थक उदाहरण प्रदान करें।
संदर्भ। मैं कोटलिन में कोडिंग कर रहा हूं और मुझे यह आश्चर्यजनक लगता है। लेकिन कभी-कभी मुझे निर्णय लेने की ज़रूरत होती है: उदाहरण के लिए, एक भारी अपरिवर्तनीय संपत्ति जो जावा में मैं स्थिर फाइनल के रूप में घोषित करता हूं, लेकिन कोटलिन में मुझे "समकक्ष ढूंढना" मुश्किल लगता है।
परीक्षण करने के लिए हो सकता है कि यह हो सकता है सहायता {http://stackoverflow.com/q/37794850/2804610} – EPadronU
रीगा में आपके पिछले अनुच्छेद के लिए आरडीएस, मुझे लगता है कि यह उत्तर आपको मदद कर सकता है {http://stackoverflow.com/a/37944990/2804610} – EPadronU