作为一只.NET老猿,一直感觉java代码又臭又长,今天看了下java8的一些新特性,感觉以后的java代码也很精简了。

public void TestingFileReader() {
        String filePath = "H:/m.log20191001";
        try (
                FileReader reader = new FileReader(filePath);
                BufferedReader bufferedReader = new BufferedReader(reader)
        ) {
            bufferedReader.lines().filter(line -> line.length() > 10).limit(5).forEach(item -> System.out.println(item));
        } catch (Exception error) {
            error.printStackTrace();
        }
    }

  资源释放用try()里头,这个比C#的using还精简(-_-||)。

 

还有这种无节操的赋值方法给接口的写法

 Random random = new Random(10);
        Supplier<Integer> supplier = random::nextInt;
        Stream.generate(supplier).filter(i -> i > 5).limit(100).forEachOrdered(i -> {
            if (Integer.toString(i).length() > 9) {
                System.out.println(i.intValue());
            }
        });