JAVA基础-JAVA11

①:变量类型推断

var code="java";
String code ="java";

var声明变量可以自动推断类型

②:集合加强

List.of("java","C++","PY");

生成一个不可变的List,说白了就是成一个阉割的数组了

(不能进行添加、删除、替换、排序等操作)

    static final class ListN<E> extends ImmutableCollections.AbstractImmutableList<E> implements Serializable {
        @Stable
        static List<?> EMPTY_LIST;
        @Stable
        private final E[] elements;

        @SafeVarargs
        ListN(E... input) {
            E[] tmp = new Object[input.length];

            for(int i = 0; i < input.length; ++i) {
                tmp[i] = Objects.requireNonNull(input[i]);
            }

            this.elements = tmp;
        }

③:Stream加强
加了takeWhile()和dropWhile()方法(此处注意这块要和filter区分开)

Stream.of(5, 4, 3, 2, 1)
            .takeWhile(n -> n > 3).collect(Collectors.toList());
Stream.of(5, 4, 3, 2, 1)
            .filter(n -> n > 3).collect(Collectors.toList());

虽然他俩的结果都是[5, 4]
但不同的是:takeWhile当发现不符合条件的直接就断路结束

而filter是全部遍历一遍选出合适的不存在断路操作

④:Optional加强

自定义异常(Java8并非11新特性)

 Optional.ofNullable(dd).orElseThrow(() -> new NoSuchMethodError());
//源码得传入无参的逻辑
public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X {

直接转stream

Optional.ofNullable(List.of("java", "C++", "PY")).stream();

optional空代替

 Optional.ofNullable(null).or(()->Optional.of("C++"));

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值