मैं कार्रवाई में हाल में जारी जावा 8 पढ़ रहा हूँ और पाया कि अध्याय 5 से चिपकाया कोड का एक टुकड़ा संकलन नहीं है:ग्रहण में प्रकार अनुमान संकलन का उपयोग कर यह जावा 8 उदाहरण क्यों नहीं था?
List<Integer> numbers1 = Arrays.asList(1, 2, 3);
List<Integer> numbers2 = Arrays.asList(3, 4);
List<int[]> pairs =
numbers1.stream()
.flatMap((Integer i) -> numbers2.stream()
.map(j -> new int[]{i, j})
)
.collect(toList());
ग्रहण कहते हैं:
: "प्रकार बेमेलList<Object>
से
List<int[]>
को परिवर्तित नहीं कर सकते"
और क्या लेखक Github पर दिया साथ तुलना करने के बाद, संकलित निम्नलिखित:
List<Integer> numbers1 = Arrays.asList(1, 2, 3);
List<Integer> numbers2 = Arrays.asList(3, 4);
List<int[]> pairs =
numbers1.stream()
.flatMap((Integer i) -> numbers2.stream()
.map((Integer j) -> new int[]{i, j})
)
.collect(toList());
केवल परिवर्तन करने के लिए "j" "(पूर्णांक जे)" से है।
लेकिन जावा 8 द्वारा प्रदान की गई वाक्यविन्यास चीनी के साथ दूसरे संस्करण के बराबर पहला संस्करण नहीं है? जावा इसे संकलित करने से इंकार क्यों करता है?
धन्यवाद
Btw:
java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) Client VM (build 25.20-b23, mixed mode)
* Argh * यह एक पुस्तक में मुद्रित है ?! – tilois
पूरी तरह से नहीं। प्रश्न को स्पष्ट करने के लिए थोड़ा सा संशोधित किया गया। –
शीर्षक को संपादित करने के लिए यह दर्शाता है कि मूल कारण ग्रहण में है। –