Это может быть явно приведено:
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);
As определение для byte
гласит:
Они также могут использоваться вместо int, где их пределы помогают прояснить ваш код;
тот факт, чтоограниченный диапазон переменной может служить формой документации.
Или добавить аналог конструктора: public MyDevice(byte, byte, byte, byte)
или даже public MyDevice(byte[])
. MyDevice
может даже иметь сеттеры, принимающие значения 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) {}
}