September 2019
Intermediate to advanced
816 pages
18h 47m
English
Let's consider the following Stream<Integer> stream:
// explicit typeStream<Integer> numbers = Stream.of(1, 2, 3, 4, 5);numbers.filter(t -> t % 2 == 0).forEach(System.out::println);
Using LVTI instead of Stream<Integer> is pretty straightforward. Simply replace Stream<Integer> with var, as follows:
// using var, inferred as Stream<Integer>var numberStream = Stream.of(1, 2, 3, 4, 5);numberStream.filter(t -> t % 2 == 0).forEach(System.out::println);
Here is another example:
// explicit typesStream<String> paths = Files.lines(Path.of("..."));List<File> files = paths.map(p -> new File(p)).collect(toList());// using var// inferred as Stream<String>var pathStream = Files.lines(Path.of(""));// inferred as List<File>var fileList ...