2012-05-23 19 views
36
ile

bu işi yapar Neden:Başlatma listesi <> Arrays.asList

String[] array = {"a", "b", "c"}; 
List<String> list = Arrays.asList(array); 

ama bu değil: inşa ve bir dizi atarken

List<String> list = Arrays.asList({"a","b","c"}); 

cevap

54

Bu kısa bir eldir sadece.

String[] array = {"a", "b", "c"}; 

Gerçi bunu yapabilirsiniz: asList gibi

List<String> list = Arrays.asList("a","b","c"); 

"vararg" argümanlar alabilir.

11

Sen

List<String> list = Arrays.asList(new String[] {"a","b","c"}); 
+1

Hayır, 'Arrays.asList ("a", "b", "c",) yapabilir;' kısa ve OP'ın asıl soruya daha benzemektedir. –

+6

Thomas'ın söylediği şey hala geçerli ve bir düşüşü hak etmiyor. – Jeshurun

+0

Hayır, söylediği "Yazmak için * yazdınız", bu doğru değil, evet, o * bir downvote hak ediyor. –

11

Sorunuz neden bir eser ve diğeri sağ olmuyorsa deneyebilirsiniz?

Eh, nedeni geçerli bir Java ifadesi ve bu nedenle derleyici kabul edemez.

Neyi ima ediyorsanız, bir full array creation expression (JLS 15.10) sağlamadan bir dizi başlatıcıyı iletmek istediğinizdir. Diğerleri işaret olarak

doğru dizi oluşturma ifadeleri aşağıdaki gibidir: JLS 10.6 Array Initializers belirtildiği gibi

String[] array = {"a", "b", "c"}; 

veya JLS 15.10 Array Creation Expressions belirtildiği gibi

String[] array = new String[]{"a", "b", "c"}; 

.

Bu ikincisi satır içi için yararlıdır, böylece doğrudan bir dizi değişkeni yerine iletebilirsiniz.

List<String> list = Arrays.asList(new String[]{"a", "b", "c"}); 

Veya sadece otomatik olacak değişken değişkenler geçirebilirsiniz: Arrays yılında asList yöntem değişken argümanları kullanır ve Değişken parametreler ifadeleri diziler eşlenir yana

, sen gibi bir satır içi dizisi geçebileceği ya bir dizinin eşleştirilmiş:

List<String> list = Arrays.asList("a","b","c"); 
İlgili konular