努力将 java RxBle 代码转换为 Kotlin

豆豆95

我目前正在使用 Kotlin 开发一个 android 应用程序。这是我第一次使用这种编程语言,我目前正在努力将 Java 代码示例翻译成 Kotlin。

我想在 Kotlin 中实现这个问题的答案

我当前的实现无法编译,因为 Ovservable::from 方法似乎已被删除。

这是我目前的方法:

connectionObservable!!.flatMap { connection ->
                    connection.discoverServices()
                            .flatMap { services ->
                                services.getService(UUID.fromString("My UUID")).map(BluetoothGattService::getCharacteristics)
                                          //here occurs the error, he wants a Single Source but got a observable with the ble characteristic
                                          .flatMap { characteristics: MutableList<BluetoothGattCharacteristic> -> Observable.fromIterable(characteristics) }
                                        .flatMap { characteristic: BluetoothGattCharacteristic ->
                                            connection.setupNotification(characteristic)
                                                    .flatMap { observable: Observable<ByteArray> -> observable ,Pair<BluetoothGattCharacteristic, ByteArray>(characteristic, observable)}

                                        }
                            }
                }.subscribe { pair: Pair<BluetoothGattCharacteristic, ByteArray> ->
                    genericModel[pair.first.uuid] = pair.second
                    throwable -> { /* handle errors */ }
                }

你能指出我的错误以便我理解我做错了什么吗?

提前致谢!乔纳斯

达留斯·塞韦林

您的代码有几个潜在的问题。

  1. 首先,代码在语法上不正确 - 请参阅这一行:
.flatMap { observable: Observable<ByteArray> -> observable ,Pair<BluetoothGattCharacteristic, ByteArray>(characteristic, observable)}

我想你可能想flatMapobservable: Observable<ByteArray>(类型由我为清楚起见加)从它那里得到ByteArray的对象。这看起来像这样:

.flatMap { observable: Observable<ByteArray> -> observable.map { bytes -> Pair(characteristic, bytes) }}
  1. 此外,当您尝试Observable从期望 a 的 lambda返回a 时,代码将无法编译SingleSource——正如您的编译器所说的那样。如果你有 aSingle并且你愿意.flatMap- 它的 lambda 应该返回另一个SingleSource有一个.flatMapObservable函数期望ObservableSource您应该使用哪个函数最终结果将如下所示:
    connectionObservable!!.flatMap { connection ->
        connection.discoverServices()
            .flatMapObservable { services ->
                services.getService(UUID.fromString("My UUID")).map(BluetoothGattService::getCharacteristics)
                    //here occurs the error, he wants a Single Source but got a observable with the ble characteristic
                    .flatMapObservable { characteristics: MutableList<BluetoothGattCharacteristic> -> Observable.fromIterable(characteristics) }
                    .flatMap { characteristic: BluetoothGattCharacteristic ->
                        connection.setupNotification(characteristic)
                            .flatMap { observable: Observable<ByteArray> -> observable.map { bytes -> Pair(characteristic, bytes) }}

                    }
            }
    }.subscribe { pair: Pair<BluetoothGattCharacteristic, ByteArray> ->
        genericModel[pair.first.uuid] = pair.second
        throwable -> { /* handle errors */ }
    }
  1. Observable.fromIterable()仍然是Observable. 您可能没有使用Observable正确包中类。Observable包中有一个类,java.util但我们在这里使用的是一个RxJava 2有包的类io.reactivex

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将Java转换为Kotlin错误后实施代码

来自分类Dev

将 Java 转换为 Kotlin 代码时的错误

来自分类Dev

使用kotlin字节码将Kotlin转换为Java会给Java代码带来错误

来自分类Dev

是否将 Kotlin 文件转换为 Java、向其中添加 Java 代码并转换回 Kotlin 与将代码直接添加到 Kotlin 文件相同?

来自分类Dev

将适配器代码从Java转换为Kotlin时出现的问题

来自分类常见问题

将Kotlin数组转换为Java varargs

来自分类Dev

将数据快照从 Java 转换为 Kotlin

来自分类Dev

将 Java 线程转换为 Kotlin

来自分类Dev

将泛型从 Java 转换为 Kotlin

来自分类Dev

使用 kotlin 编写代码插件并将代码转换为 java

来自分类Dev

将Java代码转换为delphi的问题

来自分类Dev

将代码从Java转换为PHP格式。

来自分类Dev

将C ++代码转换为JAVA

来自分类Dev

将C ++ DTW代码转换为Java

来自分类Dev

将Java代码转换为Objective C

来自分类Dev

将Java代码转换为目标c

来自分类Dev

将此Java代码转换为Kotlin的最佳方法

来自分类Dev

Flutter会将Dart代码转换为Java / Kotlin吗?

来自分类Dev

从Java到Kotlin的代码转换后的异常:java.lang.ClassCastException:无法将java.lang.String强制转换为com.example.misc.Restaurant

来自分类Dev

如何将Java文件转换为Kotlin文件?

来自分类Dev

IntelliJ的IdeaVim插件禁止将Java转换为Kotlin

来自分类Dev

将静态变量从Java转换为Kotlin

来自分类Dev

将mongodb聚合查询转换为Java / Kotlin Spring Data

来自分类Dev

如何将Java文件转换为Kotlin文件?

来自分类Dev

将 Java 转换为 Kotlin(以函数为参数)

来自分类Dev

将 kotlin 转换为 java 以传递给 Firestore

来自分类Dev

将C#代码转换为Java代码

来自分类Dev

将Java代码转换为C#代码

来自分类Dev

将Java代码转换为c#代码(将hexString转换为ByteArray)

Related 相关文章

  1. 1

    将Java转换为Kotlin错误后实施代码

  2. 2

    将 Java 转换为 Kotlin 代码时的错误

  3. 3

    使用kotlin字节码将Kotlin转换为Java会给Java代码带来错误

  4. 4

    是否将 Kotlin 文件转换为 Java、向其中添加 Java 代码并转换回 Kotlin 与将代码直接添加到 Kotlin 文件相同?

  5. 5

    将适配器代码从Java转换为Kotlin时出现的问题

  6. 6

    将Kotlin数组转换为Java varargs

  7. 7

    将数据快照从 Java 转换为 Kotlin

  8. 8

    将 Java 线程转换为 Kotlin

  9. 9

    将泛型从 Java 转换为 Kotlin

  10. 10

    使用 kotlin 编写代码插件并将代码转换为 java

  11. 11

    将Java代码转换为delphi的问题

  12. 12

    将代码从Java转换为PHP格式。

  13. 13

    将C ++代码转换为JAVA

  14. 14

    将C ++ DTW代码转换为Java

  15. 15

    将Java代码转换为Objective C

  16. 16

    将Java代码转换为目标c

  17. 17

    将此Java代码转换为Kotlin的最佳方法

  18. 18

    Flutter会将Dart代码转换为Java / Kotlin吗?

  19. 19

    从Java到Kotlin的代码转换后的异常:java.lang.ClassCastException:无法将java.lang.String强制转换为com.example.misc.Restaurant

  20. 20

    如何将Java文件转换为Kotlin文件?

  21. 21

    IntelliJ的IdeaVim插件禁止将Java转换为Kotlin

  22. 22

    将静态变量从Java转换为Kotlin

  23. 23

    将mongodb聚合查询转换为Java / Kotlin Spring Data

  24. 24

    如何将Java文件转换为Kotlin文件?

  25. 25

    将 Java 转换为 Kotlin(以函数为参数)

  26. 26

    将 kotlin 转换为 java 以传递给 Firestore

  27. 27

    将C#代码转换为Java代码

  28. 28

    将Java代码转换为C#代码

  29. 29

    将Java代码转换为c#代码(将hexString转换为ByteArray)

热门标签

归档