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.
Pracuję nad projektem. Tam powinienem znaleźć całkowitą liczbę tygodni w roku. Próbowałem z następującym kodem, ale otrzymałem złą odpowiedź: 2020 ma 53 tygodnie, ale ten kod daje 52 tygodnie. Gdzie popełniłem błąd w tym kodzie? package com.hib.mapping; import java.time.LocalDate; import java.time.temporal.WeekFields; import java.util.Calendar; import java.util.GregorianCalendar; import org.joda.time.DateTime; public class TestWeek …
Rozważ następujące dwie klasy i interfejs: public class Class1 {} public class Class2 {} public interface Interface1 {} Dlaczego drugie wywołanie mandatorywywołuje przeciążoną metodę Class2, jeśli getInterface1i Interface1nie ma związku z Class2? public class Test { public static void main(String[] args) { Class1 class1 = getClass1(); Interface1 interface1 = getInterface1(); …
Mam problem z odniesieniem do metody w połączeniu z typami rodzajowymi. Mamy kod, w którym musimy wywołać przeciążoną metodę, ale błąd kończy się niepowodzeniem: Nie można rozwiązać wartości m1 () Uprościłem swój problem, aby wyjaśnić, gdzie leży problem. Następujący kod kończy się niepowodzeniem: public class Test { void test() { …
Do czyszczenia listy danych stworzyłem metodę, która akceptuje listę danych i listę operacji czyszczenia do wykonania. public <T> List<T> cleanData(List<T> data, List<Function<T, T>> cleanOps) { List<T>dataNew=data.stream().map((str) -> { T cleanData = str; for(Function<T,T> function:cleanOps) { cleanData=function.apply(cleanData); } return cleanData; }).collect(Collectors.toList()); return dataNew; } Problem polega na tym, że ponownie tworzymy …
Znalazłem quiz na temat API Java 8 Stream metody peek, jak poniżej Arrays.asList("Fred", "Jim", "Sheila") .stream() .peek(System.out::println) .allMatch(s -> s.startsWith("F")); Dane wyjściowe to Fred Jim Nie wiem, jak działa ten strumień? Mój oczekiwany wynik powinien być Fred Jim Sheila Metoda peek () jest operacją pośrednią i przetwarza każdy element w …
Mam mapę skrótu z niższymi wartościami, w wartościach mam datę jako ciąg danych typu. Chciałbym porównać wszystkie daty dostępne na mapie i wyodrębnić tylko jedną kluczową wartość, która ma najnowszą datę. Chciałbym porównać z wartościami, a nie kluczami. Podałem kod poniżej import java.util.HashMap; import java.util.Map; public class Test { public …
Mam Map<String,List<String>>i chcę, aby się zmieniło, Map<String,List<Long>>ponieważ każdy Stringna liście reprezentuje Long: Map<String,List<String>> input = ...; Map<String,List<Long>> output= input.entrySet() .stream() .collect(toMap(Entry::getKey, e -> e.getValue().stream() .map(Long::valueOf) .collect(toList())) ); Moim głównym problemem jest to, że każdy z nich Stringmoże nie przedstawiać poprawnie Long: może być jakiś problem.Long::valueOfmoże zgłaszać wyjątki. W takim przypadku …
Mam małe szczegółowe pytanie dotyczące implementacji, w którym nie rozumiem ArrayList::removeIf. Nie sądzę, że mogę po prostu to po prostu przedstawić, tak jak jest, bez pewnych warunków wstępnych. Jako taki: wdrożenie jest w zasadzie masowe remove , w przeciwieństwie do ArrayList::remove. Przykład powinien znacznie ułatwić zrozumienie. Powiedzmy, że mam tę …
Próbuję przefiltrować zasób i wykluczyć niektóre elementy na podstawie pola. Do wykluczenia mam zestaw (który zawiera identyfikator, który należy wykluczyć) i listę (zawiera wiele zakresów identyfikatorów, które należy wykluczyć). Napisałem poniższą logikę i nie jestem zadowolony z logiki drugiego filtra. Czy jest lepszy sposób, aby to zrobić w Javie 8? …
Podczas majstrowania przy testach jednostkowych dla wysoce współbieżnej klasy singleton natknąłem się na następujące dziwne zachowanie (testowane na JDK 1.8.0_162): private static class SingletonClass { static final SingletonClass INSTANCE = new SingletonClass(0); final int value; static SingletonClass getInstance() { return INSTANCE; } SingletonClass(int value) { this.value = value; } } …
Mam Listz Employees z różnymi datami łączenia. Chcę uzyskać pracowników przed określoną datą dołączenia z listy i po niej za pomocą strumieni. próbowałem śledzić kod, List<Employee> employeeListAfter = employeeList.stream() .filter(e -> e.joiningDate.isAfter(specificDate)) .collect(Collectors.toList()); List<Employee> employeeListBefore = employeeList.stream() .filter(e -> e.joiningDate.isBefore(specificDate)) .collect(Collectors.toList()); class Employee{ int id; String name; LocalDate joiningDate; } …
Mam tutaj dziwny problem. Poniższy kod działa poprawnie, dopóki nie zrestartuję serwera tomcat po stronie klienta. Po ponownym uruchomieniu serwera tomcat (program klienta znajduje się w pliku war) z najnowszym plikiem war o tym samym kodzie, generuje następujący błąd. Używam JDK 8. Poniżej znajduje się przykładowy kod. Z przeglądarki jestem …
Mamy POJO, które jest automatycznie generowane z ~ 60 właściwościami. Jest to generowane w avro 1.4, który nie obejmuje getterów / setterów. Biblioteka, której używamy do zapewniania prostych transformacji między obiektami, wymaga metod podobnych do getter / setter w celu poprawnego działania. Czy istnieje sposób replikacji modułów pobierających / ustawiających …
Czy jest jakiś sposób, aby poniższe czynności można było wykonać jako jeden zestaw operacji strumieniowych, zamiast jawnie sprawdzać, czy zalecane Produkty są puste, a następnie zwracać domyślną listę, inaczej zwracać filtrowaną listę ? public List<Product> getRecommendedProducts() { List<Product> recommendedProducts = this.newProducts .stream() .filter(isAvailable) .collect(Collectors.toList()); if (recommendedProducts.isEmpty()) { return DEFAULT_PRODUCTS; } …
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.