Tego znacznika należy używać w przypadku pytań specyficznych dla języka Java 8, który jest wersją 8 (numer wewnętrzny 1.8) platformy Java, wydanej 18 marca 2014 r. W większości przypadków należy również podać znacznik java.
Właśnie natknąłem się na pytanie, kiedy używam a Listi jego stream()metody. Chociaż wiem, jak ich używać, nie jestem pewien, kiedy ich używać. Na przykład mam listę zawierającą różne ścieżki do różnych lokalizacji. Teraz chciałbym sprawdzić, czy pojedyncza podana ścieżka zawiera którąkolwiek ze ścieżek określonych na liście. Chciałbym zwrócićboolean podstawie tego, …
Mam poniższy kod, który jest trochę brzydki dla wielu sprawdzeń zerowych. String s = null; if (str1 != null) { s = str1; } else if (str2 != null) { s = str2; } else if (str3 != null) { s = str3; } else { s = str4; } …
Próbuję zrozumieć ifPresent()metodę OptionalAPI w Javie 8. Mam prostą logikę: Optional<User> user=... user.ifPresent(doSomethingWithUser(user.get())); Ale to powoduje błąd kompilacji: ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here) Oczywiście mogę zrobić coś takiego: if(user.isPresent()) { doSomethingWithUser(user.get()); } Ale to jest dokładnie jak zagracony nullczek. Jeśli zmienię kod na ten: user.ifPresent(new Consumer<User>() { …
Interfejs w Javie jest podobny do klasy, ale treść interfejsu może zawierać tylko abstrakcyjne metody i finalpola (stałe). Niedawno zobaczyłem pytanie, które wygląda tak interface AnInterface { public default void myMethod() { System.out.println("D"); } } Zgodnie z definicją interfejsu dozwolone są tylko metody abstrakcyjne . Dlaczego pozwala mi skompilować powyższy …
Używam JDK-8 (x64). W przypadku Arrays.sort(prymitywów) w dokumentacji Java znalazłem: Algorytm sortowania to Dual-Pivot Quicksort autorstwa Vladimira Yaroslavskiya, Jona Bentleya i Joshua Blocha. " Dla Collections.sort(obiektów) znalazłem to „Timsort”: Ta implementacja jest stabilnym, adaptacyjnym, iteracyjnym łączeniem ... Ta implementacja zrzuca określoną listę do tablicy, sortuje tablicę i wykonuje iterację po …
Java 8 wprowadza CompletableFuturenową implementację Future, którą można komponować (zawiera kilka metod thenXxx). Chciałbym używać tego wyłącznie, ale wiele bibliotek, których chcę użyć, zwraca tylko Futureinstancje, których nie można komponować . Czy istnieje sposób na zawarcie zwróconych Futurewystąpień wewnątrz elementu CompleteableFuture, aby móc go skomponować?
Jaki jest domyślny moduł odśmiecania pamięci dla Java 8? Kiedy sprawdzam JMX Beans, okazuje się, że jest to kolektor równoległy dla nowej generacji i stary kolektor szeregowy dla starej generacji.
Jak pamiętam, przed Java 8 domyślna pojemność ArrayListwynosiła 10. Co zaskakujące, komentarz dotyczący domyślnego (void) konstruktora nadal mówi: Constructs an empty list with an initial capacity of ten. Od ArrayList.java: /** * Shared empty array instance used for default sized empty instances. We * distinguish this from EMPTY_ELEMENTDATA to know …
Podczas przeszukiwania specyfikacji języka Java, aby odpowiedzieć na to pytanie , dowiedziałem się tego Zanim klasa zostanie zainicjowana, jej bezpośrednia nadklasa musi zostać zainicjowana, ale interfejsy implementowane przez klasę nie są inicjowane. Podobnie, superinterfejsy interfejsu nie są inicjowane przed zainicjowaniem interfejsu. Z własnej ciekawości spróbowałem i zgodnie z oczekiwaniami interfejs …
Ten kod działa (pobrany w Javadoc): List<Integer> numbers = Arrays.asList(1, 2, 3, 4); String commaSeparatedNumbers = numbers.stream() .map(i -> i.toString()) .collect(Collectors.joining(", ")); Tego nie można skompilować: int[] numbers = {1, 2, 3, 4}; String commaSeparatedNumbers = Arrays.stream(numbers) .map((Integer i) -> i.toString()) .collect(Collectors.joining(", ")); IDEA mówi mi, że mam „niezgodny ciąg …
Właśnie zastąpiłem sw poniższym wyrażeniu lambda przez _: s -> Integer.parseInt(s) Kompilator Eclipse mówi: „_” nie powinno być używane jako identyfikator, ponieważ jest to zastrzeżone słowo kluczowe od poziomu źródła od 1.8. Nie znalazłem żadnego wyjaśnienia w JLS §3.9 Struktura leksykalna / Słowa kluczowe.
Zgodnie z następującym dokumentem odsyłającym: Implementacja Java HashMap Jestem zdezorientowany z implementacją HashMap(a raczej ulepszeniem HashMap). Moje zapytania to: po pierwsze static final int TREEIFY_THRESHOLD = 8; static final int UNTREEIFY_THRESHOLD = 6; static final int MIN_TREEIFY_CAPACITY = 64; Dlaczego i jak są używane te stałe? Chcę mieć na to …
Pracując w Javie 8 mam takie TreeSetzdefiniowane: private TreeSet<PositionReport> positionReports = new TreeSet<>(Comparator.comparingLong(PositionReport::getTimestamp)); PositionReport jest raczej prostą klasą zdefiniowaną w ten sposób: public static final class PositionReport implements Cloneable { private final long timestamp; private final Position position; public static PositionReport create(long timestamp, Position position) { return new PositionReport(timestamp, position); …
W interfejsie kolekcji znalazłem metodę o nazwie, removeIf()która zawiera jej implementację. default boolean removeIf(Predicate<? super E> filter) { Objects.requireNonNull(filter); boolean removed = false; final Iterator<E> each = iterator(); while (each.hasNext()) { if (filter.test(each.next())) { each.remove(); removed = true; } } return removed; } Chcę wiedzieć, czy istnieje sposób zdefiniowania treści …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.