@postflow

Как передать в метод два разные по типу параметра или как привести тип int к byte?

Две переменные типа Int и byte []
int frame_len = init_frame().toByteArray().length;
byte [] frame_to_byte_array = init_frame().toByteArray();

метод принимает на вход тип byte:
...
    public void write(byte[]  message) {
            try {
                mmOutStream.write(message);
            } catch (IOException e) {
            }
        }
...


в метод write(byte[] message), требуется передать сначала "frame_len" затем сами данные "frame_to_byte_array",
но в одно действие..

На phyton-e это работает так:
...
sock.write(chr(len(data)) + data)
...


Как в Jave передать в метод два разные по типу параметра?
mConnectedThread.write(frame_len + frame_to_byte_array);


Или Как тип int привести к byte типу . и
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 2
orcDamnar
@orcDamnar
Java, C/C++, Android SDK
Я бы предложил сделать так:
public void write(byte[]  message) {
            try {
                mmOutStream.write(message.length);
                mmOutStream.write(message);
            } catch (IOException e) {
            }
        }
Ответ написан
Комментировать
@coden55
byte[] frame_len = ByteBuffer.allocate(4).putInt(frame_to_byte_array.length).array();
int aLen = frame_len.length;
int bLen = frame_to_byte_array.length;
byte[] result = new byte[aLen+bLen];
System.arraycopy(frame_len, 0, result, 0, aLen);
System.arraycopy(frame_to_byte_array, 0, result, aLen, bLen);
   
mConnectedThread.write(result);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы