कोड के इस सरल टुकड़ा कल्पना कीजिए? ऑब्जेक्ट सृजन के बाद मैं विधि testMethod को कॉल नहीं कर सकता।स्काला समस्या वैकल्पिक निर्माता
Mazi
कोड के इस सरल टुकड़ा कल्पना कीजिए? ऑब्जेक्ट सृजन के बाद मैं विधि testMethod को कॉल नहीं कर सकता।स्काला समस्या वैकल्पिक निर्माता
Mazi
आपका परीक्षा पद्धति मुख्य निर्माता पहली बात में कहा जाता है। ऐसा कोई तरीका नहीं है कि कोई अन्य कन्स्ट्रक्टर इसे अपने कोड चलाने से पहले बुलाया जा सके।
अपने मामले में, आपको बस उस कन्स्ट्रक्टर को क्या करना चाहिए इसके विपरीत करना चाहिए। मुख्य कन्स्ट्रक्टर में स्ट्रिंग पैरामीटर है, और सहायक एक इसे शून्य पर सेट करता है। जोड़ा गया लाभ, आप पैरामीटर सूची में सीधे var घोषित कर सकते हैं।
class Constructor(var s: String) {
def this() = this(null)
def testMethod() = println(s)
testMethod()
}
सामान्य तौर पर, मुख्य निर्माता और अधिक लचीला होना चाहिए, आम तौर पर एक पैरामीटर से प्रत्येक क्षेत्र बताए। स्कैला सिंटैक्स बिल्कुल इतना आसान कर रहा है। आवश्यकता होने पर आप उस मुख्य कन्स्ट्रक्टर को निजी बना सकते हैं।
संपादित: अभी भी डिफ़ॉल्ट पैरामीटर के साथ सरल
class Constructor(var s: String = null) {
def testMethod = println(s)
testMethod
}