4***@qq.com
4***@qq.com
  • 发布:2023-03-13 17:18
  • 更新:2023-03-16 17:32
  • 阅读:313

UTS中,调用jar包时,Byte类型如何处理?

分类:uts

遇到一个问题,jar包的接口中实际是要求是byte[]数组。在UTS中的提示是number[],然后我这赋值也是number[]类型,但编译器一直提示:Type mismatch: inferred type is MutableList<Number> but ByteArray! was expected‌。请教这个需要怎么去传值?试过Int[]也不行。

2023-03-13 17:18 负责人:无 分享
已邀请:
DCloud_Android_DQQ

DCloud_Android_DQQ

如果三方接口强制要求了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

DCloud_Android_DQQ

DCloud_Android_DQQ

代码我写这里了。

我这边测试正常。 你如果有问题可以提供一下具体的场景和实例

let byteTest = byteArrayOf(1, 2, 3, 4)  
    console.log(byteTest)

要回复问题请先登录注册