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.
Bawię się leniwymi operacyjnymi funkcjami w Javie SE 8 i chcę mapindeksować ido pary / krotki (i, value[i]), a następnie filterbazować na drugim value[i]elemencie, a na koniec wyprowadzać tylko indeksy. Czy nadal muszę cierpieć z tego powodu: Jaki jest odpowiednik pary C ++ <L, R> w Javie? w nowej, odważnej …
Gdy iteruję kolekcję przy użyciu nowego cukru syntaktycznego Java 8, takiego jak myStream.forEach(item -> { // do something useful }); Czy nie jest to równoważne z fragmentem „starej składni” poniżej? myStream.forEach(new Consumer<Item>() { @Override public void accept(Item item) { // do something useful } }); Czy to oznacza, że Consumerza …
Używam java lambda do sortowania listy. jak mogę to posortować w odwrotny sposób? Widziałem ten post , ale chcę użyć java 8 lambda. Oto mój kod (użyłem * -1) jako hack Arrays.asList(files).stream() .filter(file -> isNameLikeBaseLine(file, baseLineFile.getName())) .sorted(new Comparator<File>() { public int compare(File o1, File o2) { int answer; if (o1.lastModified() …
W Javie 8 istnieje Stream.collectmożliwość agregacji zbiorów. W Kotlinie nie istnieje to w ten sam sposób, poza tym, że może być zbiorem funkcji rozszerzenia w stdlib. Ale nie jest jasne, jakie są odpowiedniki dla różnych przypadków użycia. Na przykład na górze JavaDocCollectors znajdują się przykłady napisane dla Java 8, a …
Mam kolekcję BigDecimals (w tym przykładzie a LinkedList), którą chciałbym dodać. Czy można do tego wykorzystać strumienie? Zauważyłem, że Streamklasa ma kilka metod Stream::mapToInt Stream::mapToDouble Stream::mapToLong Z których każdy ma wygodną sum()metodę. Ale, jak wiemy, floati doublearytmetyka jest prawie zawsze zły pomysł. Czy jest więc wygodny sposób podsumowania BigDecimals? To …
Załóżmy, że mam klasę i metodę class A { void foo() throws Exception() { ... } } Teraz chciałbym wywołać foo dla każdej instancji Adostarczonej przez strumień: void bar() throws Exception { Stream<A> as = ... as.forEach(a -> a.foo()); } Pytanie: Jak prawidłowo obsłużyć wyjątek? Kod nie kompiluje się na …
To jest prawdziwy przykład z interfejsu API biblioteki innej firmy, ale uproszczony. Skompilowano za pomocą Oracle JDK 8u72 Rozważ te dwie metody: <X extends CharSequence> X getCharSequence() { return (X) "hello"; } <X extends String> X getString() { return (X) "hello"; } Obaj zgłaszają ostrzeżenie o „niesprawdzonej obsadzie” - rozumiem …
Przeszukując jakiś kod natknąłem się na operatora strzałki, co on właściwie robi? Myślałem, że Java nie ma operatora strzałki. return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> { return Car.SEDAN == ((Car)arg0).getStyle(); }); Szczegóły : Java 6, Apache Commons Collection, IntelliJ 12 Aktualizacja / odpowiedź: Okazuje się, że IntelliJ 12 obsługuje Javę 8, …
Mam problem z wypróbowaniem wyrażeń Lambda w Javie 8. Zwykle działa dobrze, ale teraz mam metody, które rzucają IOException. Najlepiej, jeśli spojrzysz na następujący kod: class Bank{ .... public Set<String> getActiveAccountNumbers() throws IOException { Stream<Account> s = accounts.values().stream(); s = s.filter(a -> a.isActive()); Stream<String> ss = s.map(a -> a.getNumber()); return …
Próbuję użyć java.lang.function.Functionw mojej bazie kodu Java 8, ale w Intellij pojawia się następujący błąd. Użycie API udokumentowane jako @since 1.6+ Ta inspekcja pozwala znaleźć wszystkie zastosowania metod, które mają tag @since w ich dokumentacji. Może to być przydatne, gdy programowanie jest wykonywane w nowszej wersji zestawu SDK jako docelowej …
Mogę dodać strumienie lub dodatkowe elementy, na przykład: Stream stream = Stream.concat(stream1, Stream.concat(stream2, Stream.of(element)); I mogę dodawać nowe rzeczy na bieżąco, na przykład: Stream stream = Stream.concat( Stream.concat( stream1.filter(x -> x!=0), stream2) .filter(x -> x!=1), Stream.of(element)) .filter(x -> x!=2); Ale to jest brzydkie, ponieważ concatjest statyczne. Gdyby concatbyła to metoda …
Java 8 wprowadza ważne nowe funkcje językowe, takie jak wyrażenia lambda. Czy tym zmianom w języku towarzyszą tak znaczące zmiany w skompilowanym kodzie bajtowym, które uniemożliwiłyby uruchomienie go na maszynie wirtualnej Java 7 bez użycia retrotranslatora?
Załóżmy, że mam metodę, która zwraca widok tylko do odczytu do listy członków: class Team { private List < Player > players = new ArrayList < > (); // ... public List < Player > getPlayers() { return Collections.unmodifiableList(players); } } Ponadto przypuśćmy, że wszystko, co robi klient, to powtórzenie …
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.