遇到一个问题,jar包的接口中实际是要求是byte[]数组。在UTS中的提示是number[],然后我这赋值也是number[]类型,但编译器一直提示:Type mismatch: inferred type is MutableList<Number> but ByteArray! was expected。请教这个需要怎么去传值?试过Int[]也不行。
4***@qq.com
- 发布:2023-03-13 17:18
- 更新:2023-03-16 17:32
- 阅读:313
如果三方接口强制要求了byte[]数组, 那么你可以直接定义 byte[]数组。
虽然ide 会有警告,但是你可以忽略它
UTS的数据类型使用原则是:
数据类型以UTS 内置的类型为准, 各原生平台都会对其自动适配
但是 UTS本身是跨平台语言,当具体平台的api 有明确要求时,需要以对方明确要求的数据类型为准。
https://uniapp.dcloud.net.cn/plugin/uts-for-android.html#_2-3-%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%B7%AE%E5%BC%82
4***@qq.com (作者)
谢谢。我试过这么写:
let data: Byte[] = new Array(256);
或者
let data: Byte[] =[1,2,3]
......
this.mUHF.readTagData(data,data,2,0,12,data)
但是ide一直报编译失败,提示Type mismatch: inferred type is MutableList《Byte》 but ByteArray! was expected。且我实际也无法正常使用。我的推断是无论我定义的是Byte[],Int[],Number[],编译器是不是最终转成了 MutableList《类型》这种格式。而编译器提示需要的是ByteArray这种类型。
2023-03-15 08:33
DCloud_Android_DQQ
回复 4***@qq.com: 直接这样写呢 let data:ByteArray
2023-03-15 15:52
DCloud_Android_DQQ
回复 4***@qq.com: 可以参考一下这个 https://www.jianshu.com/p/8ee33de703e2
2023-03-15 15:52
4***@qq.com (作者)
回复 DCloud_Android_DQQ: 如果使用let data:ByteArray这个写法,提示的是Type mismatch: inferred type is MutableList《???》 but ByteArray was expected,应该是不支持这个类型。然后我又试了UTS的toTypedArray方法,提示的是inferred type is Array《Byte》 but ByteArray! was expected,把我看懵逼了。然后你这个链接,它不是as的项目代码吗?难顶啊。
2023-03-16 09:09