Java/Android 添加 2 个字节(如何告诉编译器它不会超过 127?)

Java/Android add 2 bytes (how to tell compiler it won't exceed 127?)

一个的值为 0 或 2,需要与另一个相加。

这是我的方法调用到目前为止的样子

setNumber(new byte[]{(byte) 0xB0, (byte) 52});

根据另一个参数,我想做类似

的事情

setNumber(new byte[]{(byte) 0xB0+parameter, (byte) 52});

所以 paramater 介于 0 和 2 之间。我想这样做是因为我想避免在执行此操作的每一行都放置 if 语句。另外,我认为这是性能方面的最佳方式。

但是,Java 不允许我添加这两个字节 - 我得到 incompatible types Required Byte Found int。当我直接像

那样简单地添加参数值时,我想要实现的目标确实有效

setNumber(new byte[]{(byte) 0xB0+2, (byte) 52}); 因为编译器知道它仍将保留在字节范围内。

那么我怎样才能明确 parameter 永远不会超过 2 的值呢?这段代码肯定会 运行 无论程序发生什么,我只需要它以某种方式编译 - 因为手动添加值是有效的,我希望有一种方法让编译器知道不会有这里有任何问题。

谢谢

您唯一需要做的就是将加法的结果转换为字节。如果值超过 127,将截断位。

setNumber(new byte[]{(byte) (0xB0 + param), (byte) 52});