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 )
;
}