java的变化_从 java 8到 java 11变化一览

本文列举了从Java8到11各个变化的API: 变量从Java 10开始,开发人员可以选择让编译器使用var来推断类型: var x=1.0/2.0 var list = new ArrayList(); var stream = list.stream(); // Type inference can be (Java 8) Function helloFunction = s -> "Hello " + s; // Inference of generics (Diamond Operator, since Java 7) List strings = new ArrayList<>(); strings.add(helloFunction.apply("World")); // Inference of generics (Diamond Operator) with anonymous inner classes (Java 9 -> JEP 213) Consumer printer = new Consumer<>() { @Override public void accept(String string) { System.out.println(string); } }; strings.forEach(printer::accept); Java11已经提高了lambda中的var能力: IntFunction doubleIt1 = (int x) -> x * 2; // OK Java 10 and 11 IntFunction doubleIt2 = (var x) -> x * 2; // OK Java 11 更复杂案例: / /Inference of parameters in Lambda expressions Consumer printer = (var s) -> System.out.println(s); // statt s -> System.out.println(s); // But no mixture of "var" and declarated types possible // BiConsumer printer = (var s1, String s2) -> System.out.println(s1 + " " + s2); // Useful for type annotations BiConsumer printer = (@Nonnull var s1, @Nullable var s2) -> System.out.println(s1 + (s2 == null ? "" : " " + s2)); // given Optional value = Optional.of("properValue"); AtomicInteger successCounter = new AtomicInteger(0); AtomicInteger onEmptyOptionalCounter = new AtomicInteger(0); // when value.ifPresentOrElse( v -> successCounter.incrementAndGet(), onEmptyOptionalCounter::incrementAndGet); String新方法java 8加入新方法join: Set set1 = Set.of("a","b", "c"); List list1 = List.of("a","b", "c"); System.out.println( String.join("a", "b", "c") ); System.out.println( String.join(".", set1) ); System.out.println( String.join(".", list1) ); Java9 有了一个返回Stream的新方法 Java11 添加了更多String的新方法: String.repeat(int) String.lines() String.strip() String.stripLeading() String.stripTrailing() String.isBlank() 接口java8:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值