一个值为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的值?无论程序发生了什么,这段代码肯定会运行,我只需要以某种方式编译 - 并且因为手动添加值,我希望有一种方法可以使编译器知道不会有任何问题这里。
由于
答案 0 :(得分:1)
您唯一需要做的就是将添加结果转换为byte。如果该值超过127,则将截断这些位。
setNumber(new byte[]{(byte) (0xB0 + param), (byte) 52});