Google ने यह सब क्यों बनाया, जब वह अपाचे कॉमन्स कलेक्शंस को बेहतर बनाने की कोशिश कर सकता था?
अपाचे कॉमन्स कलेक्शंस बहुत स्पष्ट रूप से हमारी जरूरतों को पूरा नहीं करते थे। यह जेनेरिक का उपयोग नहीं करता है, जो हमारे लिए एक समस्या है क्योंकि हम अपने कोड से संकलन चेतावनी प्राप्त करने से नफरत करते हैं। यह लंबे समय तक "धारण पैटर्न" में भी रहा है। हम देख सकते हैं कि इसे ठीक करने के लिए हमें उससे एक बहुत बड़े निवेश की आवश्यकता होगी जब तक कि हम इसका उपयोग करने में खुश न हों, और इस बीच, हमारी अपनी लाइब्रेरी पहले से ही व्यवस्थित रूप से बढ़ रही थी।
अपाचे पुस्तकालय और हमारे बीच एक महत्वपूर्ण अंतर यह है कि हमारे संग्रह जेडडीके इंटरफेस द्वारा लागू किए गए अनुबंधों का बहुत ईमानदारी से पालन करते हैं। यदि आप अपाचे प्रलेखन की समीक्षा करते हैं, तो आपको उल्लंघन के अनगिनत उदाहरण मिलेंगे। वे इतने स्पष्ट रूप से इंगित करने के लिए श्रेय के हकदार हैं, लेकिन फिर भी, मानक संग्रह व्यवहार से भटकना जोखिम भरा है! आपको सावधान रहना चाहिए कि आप इस तरह के संग्रह के साथ क्या करते हैं; कीड़े हमेशा बस होने की प्रतीक्षा कर रहे हैं।
हमारे संग्रह पूरी तरह से उत्पन्न होते हैं और कभी भी अपने अनुबंधों का उल्लंघन नहीं करते हैं (अलग-थलग अपवादों के साथ, जहां जेडीके कार्यान्वयनों ने स्वीकार्य उल्लंघनों के लिए एक मजबूत मिसाल कायम की है)। इसका मतलब है कि आप हमारे संग्रह में से किसी भी विधि को पारित कर सकते हैं जो एक संग्रह की अपेक्षा करता है और बहुत आश्वस्त महसूस करता है कि चीजें ठीक उसी तरह काम करेंगी जैसी उन्हें चाहिए।