«java-8» etiketlenmiş sorular

Java platformunun 18 Mart 2014'te yayınlanan sürüm 8'i (iç sayı 1.8) olan Java 8'e özgü sorular için bu etiketi kullanın. Çoğu durumda, java etiketini de belirtmeniz gerekir.


5
Optional.ifPresent () öğesinin doğru kullanımı
Java 8'de API'nin ifPresent()yöntemini anlamaya çalışıyorum Optional. Basit mantığım var: Optional<User> user=... user.ifPresent(doSomethingWithUser(user.get())); Ancak bu, bir derleme hatasıyla sonuçlanır: ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here) Tabii ki bunun gibi bir şey yapabilirim: if(user.isPresent()) { doSomethingWithUser(user.get()); } Ancak bu tam olarak dağınık bir nullçek gibi . Kodu şununla değiştirirsem: …
99 java  lambda  java-8  optional 

5
Neden Collections.sort Mergesort kullanıyor ama Arrays.sort kullanmıyor?
JDK-8 (x64) kullanıyorum. İçin Arrays.sort(ilkel) Java belgelerinde aşağıdaki bulundu: Sıralama algoritması, Vladimir Yaroslavskiy, Jon Bentley ve Joshua Bloch imzalı Dual-Pivot Quicksort'tur . İçin Collections.sort(nesneler) Bu "Timsort" bulundu: Bu uygulama kararlı, uyarlanabilir, yinelemeli bir birleştirmedir ... Bu uygulama , belirtilen listeyi bir diziye döker, diziyi sıralar ve her bir öğeyi dizideki …

6
Java Geleceğini Tamamlanabilir Bir Geleceğe Dönüştürün
Java 8 CompletableFuture, bir araya getirilebilir yeni bir Future uygulaması (bir grup thenXxx yöntemi içerir) sunar. Bunu özel olarak kullanmak istiyorum, ancak kullanmak istediğim kitaplıkların çoğu yalnızca bir araya getirilemeyen Futureörnekleri döndürüyor . FutureA'nın içinde döndürülen örnekleri CompleteableFutureoluşturup onu oluşturabilmem için bir yol var mı?
97 java  java-8  future 


8
Java'daki varsayılan anahtar kelimenin amacı nedir?
Java'daki bir arabirim bir sınıfa benzer, ancak bir arabirimin gövdesi yalnızca soyut yöntemler ve finalalanlar (sabitler) içerebilir . Geçenlerde şuna benzeyen bir soru gördüm interface AnInterface { public default void myMethod() { System.out.println("D"); } } Arayüz tanımına göre sadece soyut yöntemlere izin verilir. Neden yukarıdaki kodu derlememe izin veriyor? Nedir …

8
Java 8'de birden çok alan adına göre gruplama
POJO'dan bazı alan adlarına göre nesneleri gruplamak için kod buldum. Bunun kodu aşağıdadır: public class Temp { static class Person { private String name; private int age; private long salary; Person(String name, int age, long salary) { this.name = name; this.age = age; this.salary = salary; } @Override public String …
95 java  java-8 

6
Java 8'de, ArrayList'in varsayılan kapasitesi neden şimdi sıfır?
Hatırladığım kadarıyla, Java 8'den önce varsayılan kapasite ArrayList10'du. Şaşırtıcı bir şekilde, varsayılan (void) kurucu hakkındaki yorum hala şunu söylüyor: Constructs an empty list with an initial capacity of ten. Kimden ArrayList.java: /** * Shared empty array instance used for default sized empty instances. We * distinguish this from EMPTY_ELEMENTDATA to …
94 java  arraylist  java-8 

5
Bir diziden akış yaparken neden tam sayıları dizelerle eşleyemiyorum?
Bu kod çalışır (Javadoc'ta alınmıştır): List<Integer> numbers = Arrays.asList(1, 2, 3, 4); String commaSeparatedNumbers = numbers.stream() .map(i -> i.toString()) .collect(Collectors.joining(", ")); Bu derlenemez: int[] numbers = {1, 2, 3, 4}; String commaSeparatedNumbers = Arrays.stream(numbers) .map((Integer i) -> i.toString()) .collect(Collectors.joining(", ")); IDEA bana "lambda ifadesinde uyumsuz bir dönüş türü String" olduğunu …

3
_ (alt çizgi) ayrılmış bir anahtar kelimedir
sAşağıdaki lambda ifadesini şu şekilde değiştirdim _: s -> Integer.parseInt(s) Eclipse derleyicisi diyor ki: '_', kaynak seviyesi 1.8'den itibaren ayrılmış bir anahtar kelime olduğundan tanımlayıcı olarak kullanılmamalıdır. JLS §3.9 Sözcüksel Yapı / Anahtar Sözcükler'de herhangi bir açıklama bulamadım .
94 java  lambda  java-8 

4
Varsayılan yöntemle bir arayüz ne zaman başlatılır?
Cevaplamak için Java Dil Şartnamede arama yaparken bu soruyu , ben öğrendim o Bir sınıf başlatılmadan önce, onun doğrudan üst sınıfı başlatılmalıdır, ancak sınıf tarafından uygulanan arabirimler başlatılmaz. Benzer şekilde, bir arayüzün süper arayüzleri, arayüz başlatılmadan önce başlatılmaz. Kendi merakım için denedim ve beklendiği gibi arayüz InterfaceTypebaşlatılmadı. public class Example …

6
HashMap Java 8 uygulaması
Aşağıdaki bağlantı belgesine göre: Java HashMap Uygulaması HashMap(Veya daha doğrusu bir geliştirmenin HashMap) uygulanmasıyla karıştırıldım . Sorgularım: ilk olarak static final int TREEIFY_THRESHOLD = 8; static final int UNTREEIFY_THRESHOLD = 6; static final int MIN_TREEIFY_CAPACITY = 64; Bu sabitler neden ve nasıl kullanılır? Bunun için bazı net örnekler istiyorum. Bununla …


1
completeablefuture katılmak vs get
Arasındaki fark nedir CompletableFuture.get()ve CompletableFuture.join()? Kodum aşağıdadır: List<String> process() { List<String> messages = Arrays.asList("Msg1", "Msg2", "Msg3", "Msg4", "Msg5", "Msg6", "Msg7", "Msg8", "Msg9", "Msg10", "Msg11", "Msg12"); MessageService messageService = new MessageService(); ExecutorService executor = Executors.newFixedThreadPool(4); List<String> mapResult = new ArrayList<>(); CompletableFuture<?>[] fanoutRequestList = new CompletableFuture[messages.size()]; int count = 0; for (String …


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.