2011-08-23 29 views
7

Khi tôi cố gắngTại sao tôi không thể sử dụng StringUtils.join của Apache trên danh sách?

StringUtils.join(myList,','); 

tôi nhận được một thất bại biên soạn:

cannot find symbol 
symbol : method join(java.util.List,char) 

Nhưng các công việc sau:

StringUtils.join(myList.toArray(),','); 

Các docs (Apache Commons Lang 2.5) dường như chỉ ra rằng cả hai nên làm việc, vì họ kỷ lục cả hai:

public static String join(Collection collection, 
         char separator) 

public static String join(Object[] array, 
         char separator) 

Bất kỳ ý tưởng? Đối với hồ sơ, tôi đang nhập import org.apache.commons.lang.StringUtils;

+3

Phiên bản này có sẵn kể từ phiên bản 2.3. Bạn có tệp JAR lỗi thời không? – home

+0

Và 'myList' được định nghĩa như thế nào? –

+0

Tôi thực sự có cùng một vấn đề nhưng tôi đã kiểm tra tất cả mọi thứ và các phiên bản của tôi 2.6 – Kevin

Trả lời

12

Lý do có thể xảy ra nhất là bạn đang sử dụng phiên bản cũ hơn của Commons Lang vì phương pháp sử dụng Collection chỉ được thêm vào 2.3.

Bạn có thể kiểm tra điều đó bằng cách tìm trong tệp MANIFEST.MF trong Thùng ở trường Implementation-Version.

2

Tôi đã gặp sự cố sớm hơn và nhận ra rằng đó là do thứ tự nhập của tôi.

Khi tôi đã thay đổi JAR commons của mình theo thứ tự nhập, nó hoạt động.

Hy vọng điều này sẽ hữu ích.

+0

điều này thực sự giúp ... cảm ơn rất nhiều – user2720864

0

Không hẳn vấn đề nhưng có liên quan của bạn:

Trong org.apache.commons.lang.StringUtils, tồn tại một phương pháp

join(Object[]) 

Điều đó không có một dấu phân cách.

join(Object[], char) 
join(Collection, char) 

Tất cả mất delimiters (có thể sử dụng String instesad của char). Vì vậy, nếu bạn quên dấu phân cách, thông báo lỗi của bạn có thể chỉ đến vấn đề sai.

Các vấn đề liên quan