gpt4 book ai didi

java - 不兼容的类型 : byte cannot be converted to boolean

转载 作者:行者123 更新时间:2023-12-02 09:22:29 25 4
gpt4 key购买 nike

我有一个类,其中包含我将其构造为对象并将消息发送到主处理程序的值。我可以毫无问题地使用 int ,但有些值是 boolean 值。这是我在 bytes[5] 和 bytes[6] 中遇到以下错误的地方

byte[] bytes = new byte[259];

message_to_device = new MyDevice(bytes[3], //int
bytes[4], //int
bytes[5], // boolean
bytes[6] // boolean);

Message message = Message.obtain();
message.obj = message_to_device;
message.what = MESSAGE;
mhandler.sendMessage(message);

我遇到了BitSet,这有什么用吗?我对 Android 中的一些细节还不太熟悉。我该如何继续?

最佳答案

这可以显式转换:

new MyDevice(
(int) bytes[3], // integer value
(int) bytes[4], // integer value
bytes[5] != (byte) 0, // boolean result
bytes[6] != (byte) 0 // boolean result
);

但它也无需强制转换即可工作,因为在 Java 中可以使用 byte 而不是 int:

new MyDevice(bytes[3], bytes[4], bytes[5] != 0, bytes[6] != 0);

作为definition对于字节读取:

They can also be used in place of int where their limits help to clarify your code;

the fact that a variable's range is limited can serve as a form of documentation.

或者添加类似的构造函数:public MyDevice(byte, byte, byte, byte) 甚至public MyDevice(byte[])MyDevice 甚至可以有 setter ,接受 byte 值,设置 boolean 字段。例如:

class MyDevice {
// public MyDevice(int arg0, int arg1, boolean arg2, boolean arg3) {}
public MyDevice(byte arg0, byte arg1, byte arg2, byte arg3) {}
public MyDevice(byte[] arg0) {}
}

关于java - 不兼容的类型 : byte cannot be converted to boolean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58591579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com