Lambda没有转化为方法参考

时间:2017-11-04 20:29:40

标签: java android lambda rx-java method-reference

Android Studio通知我可以将以下Lambda转换为方法参考:

        result -> result.getBleDevice()

但是当我尝试时,我收到一个错误:

        RxBleScanResult::getBleDevice

result参数的类型为RxBleScanResult,但我收到错误"无法从静态上下文引用非静态方法"。代码驻留在静态方法中,但result是定义getBleDevice()方法的类中的对象实例。

我试图理解"对特定类型的任意对象的实例方法的引用的讨论"但是当Lambda版本可以接受时,我不明白为什么这不会起作用。

更新:这里是整个方法(参见最后两行):

static Observable<RxBleDevice> getScanObservable( UUID serviceUUID ) {
    return GlucometerApplication.getRxBleClient()
            .scanBleDevices(
                    new ScanSettings.Builder()
                            .setScanMode( SCAN_MODE )
                            //.setMatchMode( MATCH_MODE )
                            .build(),
                    new ScanFilter.Builder()
                            .setServiceUuid( new ParcelUuid( serviceUUID ) )
                            .build()
            )
            //.map( result -> result.getBleDevice() )
            .map( RxBleScanResult::getBleDevice )
            ;
}

0 个答案:

没有答案