Etkili Java 2. Ed'e göre, varargs'e izin veren bir yöntem imzası yazmak istediğinizde ancak derleme zamanında en az bir öğeye sahip olduğunuzu zorlarsanız, yöntem imzasını bu şekilde yazmanız gerekir. Ben 1 akışı oluşturuyorsam özellikle çünküJava 8 akışları ve varargs
public void something(String required, String ... additional) {
Stream<String> allParams =
Stream.concat(Stream.of(required), Stream.of(additional));
//... do what you want to do
}
Bu gerçekten inelegant ve savurgan hisseder: bütün bu unsurları akarsu isterseniz
public void something(String required, String ... additional) {
//... do what you want to do
}
, böyle bir şey yapıyorum ve concatena Bir diğeriyle bağla. Bunu yapmanın daha temiz bir yolu var mı?
'Stream.concat' iyi gibi geliyor bana .. Kısa, özlü, verilerin kopyalarını oluşturmuyor. Birkaç ekstra sarıcı nesne oluşturuyorsunuz, hepsi bu. IMO gerçekten onunla yanlış bir şey yok. Java'da programlama, sadece burada ve orada şeyler için küçük nesneler oluşturmanız gerekir. "Stream.concat", onları bir "ArrayList" ile birleştirmekten çoktan uzaktaydı. – Radiodef
Radiodef ile aynı fikirdeyim, eğer gerçekten istiyorsan, Spliterator 'kendi uygulamanızı yapabilir ve onu StreamSupport.stream (spliterator, parallel) ile kullanabilirsin ama gerçekten daha fazla okunabilir veya verimli hale gelebilirmiş gibi hissetmiyorum. . –