Tại sao Google xây dựng tất cả những thứ này, khi nó có thể đã cố gắng cải thiện Bộ sưu tập Commons Apache thay thế?
Bộ sưu tập Apache Commons rất rõ ràng không đáp ứng nhu cầu của chúng tôi. Nó không sử dụng thuốc generic, đây là một vấn đề đối với chúng tôi vì chúng tôi ghét phải nhận các cảnh báo biên dịch từ mã của chúng tôi. Nó cũng đã ở trong một "mô hình tổ chức" trong một thời gian dài. Chúng tôi có thể thấy rằng nó sẽ đòi hỏi một khoản đầu tư lớn từ chúng tôi để sửa chữa nó cho đến khi chúng tôi hài lòng sử dụng nó, và trong khi đó, thư viện của chúng tôi đã phát triển một cách hữu cơ.
Một sự khác biệt quan trọng giữa thư viện Apache và thư viện của chúng tôi là các bộ sưu tập của chúng tôi tuân thủ rất chặt chẽ các hợp đồng được chỉ định bởi các giao diện JDK mà chúng thực hiện. Nếu bạn xem lại tài liệu Apache, bạn sẽ tìm thấy vô số ví dụ về các vi phạm. Họ xứng đáng được công nhận vì đã chỉ ra những điều này rất rõ ràng, nhưng vẫn, đi lệch khỏi hành vi thu thập tiêu chuẩn là rủi ro! Bạn phải cẩn thận những gì bạn làm với một bộ sưu tập như vậy; lỗi luôn luôn chờ đợi để xảy ra.
Các bộ sưu tập của chúng tôi được tổng quát hóa hoàn toàn và không bao giờ vi phạm hợp đồng của họ (với các trường hợp ngoại lệ bị cô lập, trong đó việc triển khai JDK đã tạo tiền lệ mạnh mẽ cho các vi phạm có thể chấp nhận được). Điều này có nghĩa là bạn có thể chuyển một trong các bộ sưu tập của chúng tôi cho bất kỳ phương pháp nào mong đợi Bộ sưu tập và cảm thấy khá tự tin rằng mọi thứ sẽ hoạt động chính xác như họ cần.