Explicação para essa linha especifica, por favor

System.out.println("Message received:\n\t"+ new String(mqttMessage.getPayload()));

O que tô querendo entender mesmo é esse trecho aqui:
new String(mqttMessage.getPayload()));
Ele está convertendo pra String? O que está fazendo? E como posso transformar o mqttMessage (que vem em forma de byte[]) para pode tratar a mensagem que recebo?

Agradeço já

A classe String tem um construtor que recebe um array de byte. Esse construtor vai interpretar a sequência de bytes de acordo com o charset default do sistema.

1 curtida

Aaaah, incrível, entendi agora. Como eu poderia salvar essa info numa String pra depois tratar? Por que assim, eu vou receber um JSON que eu preciso extrair infos…

Obrigado, brother!

1 curtida

Cara, pensa assim: Se ele tá chamando um construtor, é pq ele tá “construindo” uma String, certo? Então basta instanciar uma string passando o byte[] como parametro pro construtor!

String TheCurseOfCaptainMorgan = new String(mqttMessage.getPayLoad());

Espero que te ajude :wink:

[]'s

1 curtida

Obrigado, @lvbarbosa e @fearx! Fantásticos!

Aliás, boa referência. Alestorm é legal demais.