2011-12-28 7 views
5

Tiêu đề lạ, tôi biết, hãy để tôi giải thích.Tôi làm cách nào để tìm hiểu cách sử dụng bộ sưu tập commons Java?

Tôi là một nhà phát triển quen thuộc nhất với C# và Javascript. Tôi hoàn toàn chìm vào những thế giới bán chức năng đó đến mức hầu hết mã của tôi là về các bộ sưu tập ánh xạ/giảm/lọc. Trong C# có nghĩa là tôi sử dụng LINQ chỉ ở khắp mọi nơi, trong Javascript nó là Underscore.js và jQuery.

Tôi hiện đã được chỉ định cho một dự án Java đang diễn ra và cảm thấy khá ngột ngạt. Tôi chỉ đơn giản là không nghĩ về "tạo ra một mảng, trộn lẫn các công cụ từ một đến khác". Tôi có thể (và đã làm) tạo ra các phiên bản của riêng tôi của các chức năng bản đồ/giảm chính bằng cách sử dụng các loại vô danh thực hiện các giao diện nhưng tại sao lại phát minh ra bánh xe? Dự án tôi hiện đang trên đã có commons-collections-3.1.jar và tìm kiếm thông qua các lớp chứa nó có vẻ như nó có khả năng có thể làm tất cả mọi thứ mà tôi muốn và nhiều hơn nữa.

Đối với cuộc sống của tôi, tôi không thể tìm thấy cách thực sự sử dụng nó. Nhìn qua hàng chục lớp học trong đó không phải là rất hữu ích và điều duy nhất tôi có thể google lên is the api doc đó là bằng nhau là hữu ích.

Bạn sử dụng nó như thế nào để Ánh xạ/Chọn, Lọc/Địa điểm, Giảm/Tổng hợp? Có bất kỳ nơi nào cung cấp hướng dẫn thực tế về thư viện này không?

+0

Sách - Cẩm nang Jakarta Commons http://shop.oreilly.com/product/9780596007065.do?CMP=ILL-4GV796923290 – adatapost

+3

Hãy lưu ý rằng Bộ sưu tập của Commons là khá kế thừa và không hỗ trợ Generics. – BalusC

+0

Ugh, nghiêm túc? Vậy thì sẽ không sử dụng nó. Một gói phần mềm cung cấp khả năng xử lý bộ sưu tập VÀ hỗ trợ Generics là gì? –

Trả lời

4

(Comment là câu trả lời để định dạng các mục đích.)

Không quá nhiều, trừ các hạn chế user guide.

Điều đó nói rằng, tôi không chắc chắn nơi bạn gặp sự cố cụ thể - việc lọc và chọn chủ yếu được bao bọc trong số functors package và được sử dụng bởi lớp CollectionUtils. Trong khi bạn không tìm kiếm một sự thay thế, bạn có thể tìm thấy những thứ như Guava hoặc Lambda4J một chút tương tự với những gì bạn đang sử dụng (trong các hạn chế của Java) và chúng ít tiết hơn một chút.

+0

Ah CollectionUtils là thứ tôi đang tìm kiếm. Điều đó là đủ để tôi bắt đầu nhưng thánh thần những kẻ này cần phải đưa tài liệu của họ vào một trạng thái thực sự hữu ích. Ngay cả liên kết đó với lớp trực tiếp mà tôi muốn không chứa ví dụ về cách sử dụng, tôi đã may mắn khi tôi nhận ra một số chữ ký của phương thức giống như chữ ký mà tôi đã tự thực hiện. –

+0

@GeorgeMauer Tôi nghĩ rằng đó là một trong những điều mà nó đã được khoảng thời gian dài, nó giả định tất cả mọi người đã học được nó thông qua thẩm thấu;) –

+0

Tôi nhận được cảm giác tất cả của Java là như thế :) –

1

@ george-mauer, bạn có thể phải dựa vào các bài viết như this hoặc một cuốn sách như Jakarta Commons Cookbook. Tôi cũng tìm thấy nó khá hữu ích để học bằng cách tạo mẫu của riêng tôi.

+0

Hmm, liên kết đó đơn giản nói về những người triển khai giao diện ẩn danh và tôi chắc chắn sẽ không đọc/đọc một cuốn sách trong một dự án vài tháng. những gì một PITA –