android使用java8新特性

今天看到组长写的一行代码一头雾水

 SafeUtil.safeRun(UpdateModule.getInstance()::start);

再跑去SafeUtil类里看方法的定义

public static void safeRun(@NonNull final Runnable runnable, String ...messages){
        try{
            runnable.run();
        }catch (Exception e){
            LogUtil.err2file("异常:" + Arrays.toString(messages), e, 1);
        }
    }

内事不决问百度,于是我查了下Google,原来这是java8的新特性,叫做方法引用,当lamda表达式表达的匿名函数已经存在的时候,就可以直接以::的形式来写,这里定义的run方法和start方法本质上是同一种函数,所以可以这样写。而且发现现在android已经可以原生支持java8的部分特性了,比如lambda表达式,接口默认函数,方法引用,但是streamApi还不能使用。

你可能感兴趣的:(android使用java8新特性)