2016-02-04 9 views
5

के लिए अयोग्य है जब यह कर:प्रकार अशक्त की अभिव्यक्ति अंतर्निहित रूपांतरण

def myfunction(line: String): (Int, Option[DateTime], Option[Int]) = { 
    // do some stuff 
    (5, Option(null), Option(null)) 
    } 

मैं निम्नलिखित मिल:

प्रकार अशक्त की अभिव्यक्ति अंतर्निहित रूपांतरण के लिए अयोग्य है

मुझे यकीन नहीं है कि इसे कैसे ठीक किया जाए।

+1

'Int' 'शून्य' में नहीं रहता है। – Lee

+0

ली के संकेत को बेहतर बनाने के लिए: लागू होने पर मामलों में जेवीएम से 'इंट' को प्राइमेटिव 'इंट' में मैप किया जाएगा। इस प्रकार किसी इंट के लिए किसी भी मामले में 'शून्य' का उपयोग करना संभव नहीं है। – bash0r

+1

स्कैला में 'शून्य' लिखना कुछ हद तक एनाथेमा है ... –

उत्तर

13

Option(null)Option[Null] की निचली सीमा है, जहां Null सभी संदर्भ प्रकारों का निचला प्रकार है। Int एक मान प्रकार है, न कि संदर्भ प्रकार। यानी आप null को Int पर असाइन नहीं कर सकते हैं। तो आप Option[Null] को Option[Int] पर असाइन नहीं कर सकते हैं।

इसके बजाय Option.empty[Int] या None का उपयोग करें।

संबंधित मुद्दे