मैं जावा 1.8.0_151 उपयोग कर रहा हूँ और वहाँ कुछ कोड है कि संकलन नहीं करता है और मुझे समझ नहीं आता:Java8 सामान्य पहेली
Optional optional = Optional.of("dummy");
Optional<Boolean> result1 = optional.map(obj -> true); // works fine
boolean result2 = result1.orElse(false); // works fine
boolean result3 = optional.map(obj -> true).orElse(false); // compilation error: Incompatible types: required boolean, found object
Object result4 = optional.map(obj -> true).orElse(false); // works fine
कारण है कि यह result1
पर ठीक काम करता है लेकिन result3
पर संकलन त्रुटि देता है ?
अतिरिक्त जानकारी: result1
और result2
की तरह, result3
संकलन करने में सक्षम है:
- पहली पंक्ति में, जब मैं
Optional
Optional<String>
को बदलने के लिए, result3 भी जब मैं 2 लाइनों मेंresult3
तोड़ने - संकलन करने में सक्षम है
संभावित डुप्लिकेट [कच्चे प्रकार का क्या है और हमें इसका उपयोग क्यों नहीं करना चाहिए?] (Https://stackoverflow.com/questions/2770321/what-is-a-raw-type-and-why-shouldnt -we-use-it) – Andrew
@AndrewTobilko ओपी हो सकता है * उद्देश्य पर * – Eugene