13

Tôi rất ngạc nhiên khi dự án Apache Commons Collections vẫn chưa có ý định làm cho thư viện của họ trở nên thông minh. Tôi thực sự thích các tính năng được cung cấp bởi thư viện này, nhưng việc thiếu sự hỗ trợ cho Generics là một turn-off lớn. Có một Lavalabs fork of Commons Collections which does support generics, có vẻ như yêu cầu tính tương thích ngược, nhưng khi tôi thử cập nhật lên phiên bản này, ứng dụng web của tôi không thể khởi động (trong JBoss).Bộ sưu tập chung được sưu tầm

Câu hỏi của tôi là:

  • Cho dù ai đã cập nhật thành công từ Commons Bộ sưu tập đến ngã ba nêu trên
  • Nếu Commons Bộ sưu tập có bất kỳ kế hoạch để hỗ trợ thêm cho generics

BTW, tôi nhận thức được các bộ sưu tập của Google, nhưng tôi không muốn sử dụng nó cho đến khi API ổn định.

Chúc mừng, Don

Trả lời

8

Có những đóng góp. Hãy kiểm tra jira 's

Ngoài ra còn có JDK5 branch.

Chúng tôi muốn thêm generics và cập nhật Commons Collections thành 1.5 (và 1.6). Vấn đề lớn nhất là làm thế nào để giải quyết tương thích ngược. Và mọi người có ý kiến ​​rất khác nhau ở đó. Đối với một số thành phần Commons, JDK mới hơn gần như yêu cầu viết lại cho JDKs IMHO mới.

Trong thời gian ApacheCon, tôi cảm thấy sự thôi thúc đối với nhiều người để có được điều này. Nó chỉ là một nhiệm vụ lớn.

Hãy thoải mái để hiển thị trên [email protected]

cổ vũ, Torsten

+0

Cảm ơn Torsten. Tôi là một chút có liên quan để mang lại điều này lên trên danh sách gửi thư như tôi mong đợi nó đã được thảo luận một triệu lần. Tôi sẽ kiểm tra chi nhánh JDK5 –

+0

Câu hỏi: Bạn có biết rằng JDK 1.4 không còn được hỗ trợ bởi mặt trời? –

+0

Chỉ cần mang nó lên. Chúng tôi cần áp lực :) – tcurdt

6

Cho rằng từ cuối cùng ở Jakarta của riêng internaldebate là vào ngày 07 tháng 12, tôi sẽ nói rằng Apache sẽ không nắm lấy Generics, để lại hiện trường mở cho một cái gì đó Java5 thân thiện như Google Collections.

0

Tôi không thể tưởng tượng những gì lý do bạn có thể phải làm không sử dụng bộ sưu tập google. Nó khá đơn giản để sử dụng thư viện đó.

Đối với công việc của tôi, tôi sử dụng cả bộ sưu tập apache và bộ sưu tập google.

bạn có thể giải thích thêm về lý do bạn không thể sử dụng bộ sưu tập của Google không?

liên quan

+2

Một lý do là vì đơn đăng ký của tôi đã bao gồm các bộ sưu tập commons (ví dụ như phụ thuộc chuyển tiếp của thư viện Apache khác). Nếu có thể, tôi muốn nâng cấp lên một phiên bản generic của bộ sưu tập commons giới thiệu một sự phụ thuộc khác. –

9

Xem xét Google Collections. Từ họ Javalobby interview:

[Google Bộ sưu tập được] được xây dựng với Java 5 tính năng: Generics, enums, kiểu trả về hiệp biến, vv Khi viết Java 5 mã, bạn muốn có một thư viện các bộ sưu tập mà tận dụng tối đa ngôn ngữ. Ngoài ra, chúng tôi đặt nỗ lực rất lớn vào việc làm cho thư viện hoàn chỉnh, mạnh mẽ và phù hợp với các lớp sưu tập JDK.

+0

Tôi là tất cả trong câu trả lời này. Nghiêm túc, nếu Apache commons folks muốn ở lại trong túp lều tuổi tối tập thể của họ (vì bất cứ lý do gì) thì đó là sự lựa chọn của họ. Thật xấu hổ khi viết mã các dự án mới bằng cách sử dụng các thư viện không hỗ trợ các tính năng java hiện đại. – Lajcik

+1

Bộ sưu tập của Google không còn được duy trì và hiện là một phần của [Guava] (http://guava-libraries.googlecode.com/) – herman

1

Tôi nói, cắn viên đạn và chuyển sang bộ sưu tập google, ít nhất là đối với mã mới.

Tôi biết bạn lo lắng về tính ổn định, nhưng thư viện thu thập google rất gần ổn định cho bản phát hành 1.0 - hang out trên danh sách dev hoặc xem các sự cố được báo cáo của họ, họ đã rất thận trọng về thay đổi, đặc biệt là phá vỡ những cái. Bất kỳ sự không tương thích nào giữa bản phát hành hiện tại và phiên bản 1.0 (dường như sắp xảy ra) sẽ cực kỳ nhỏ.

Ngoài ra, nếu bạn lo lắng về sự ổn định, hãy chọn một phiên bản (ví dụ: phiên bản hiện tại, 1.0 RC4) và ... chỉ cần không nâng cấp. Chắc chắn, bạn sẽ không nhận được bất kỳ tính năng mới nào, nhưng bộ sưu tập commons chưa được cập nhật theo cách có ý nghĩa trong một số năm, vì vậy bạn có thực sự tồi tệ hơn không? Ít nhất bạn đã bị đóng băng trên một cái gì đó với Generics và (IMHO) một API tốt hơn nhiều.

0

Có một bộ sưu tập Commons chung của bộ sưu tập 3.1 available here, chúng tôi đã sử dụng trong vài năm nay. Công việc này có độc đáo không và vì nó dựa hoàn toàn vào nguồn Commons hiện có, nó có một API ổn định.

Mặc dù vậy, tính năng này có thể sử dụng cập nhật để phù hợp với Bộ sưu tập Commons 3.2.

1

Vấn đề chung của BC là gói org.apache.commons.collections đã được đổi tên thànhorg.apache.commons.collections15. Tôi không biết lý do của sự thay đổi này. Hãy thử đổi tên lại, biên dịch lại thư viện và chạy lại ứng dụng của bạn.

Tôi đã tìm thấy sự cố này bằng cách sử dụng công cụ Clirr trên commons-collections-3.2.1.jar (từ Apache) và collections-generic-4.01.jar (từ Lavalabs).