Я наткнулся на учебник по Android и увидел следующий метод, который я не совсем понимаю:
public static String bytesToHex(byte[] bytes) {
char[] hexChars = new char[bytes.length * 2];
for (int j = 0; j < bytes.length; j++) {
int v = bytes[j] & 0xFF;
hexChars[j * 2] = hexArray[v >>> 4];
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
}
return new String(hexChars);
}
Основная цель этого метода — преобразовать массив байтов, полученный через веб-сокет, в строку json, которая должна быть преобразована в объект json, например:
@Override
public void onMessage(byte[] data) {
Log.d(TAG, String.format("Got binary message! %s",
bytesToHex(data)));
// Message will be in JSON format
parseMessage(bytesToHex(data));
}
....
private void parseMessage(final String msg) {
try {
JSONObject jObj = new JSONObject(msg);
...
Как работает метод bytesToHex? Я только знаю, что он перебирает массив байтов, а затем выполняет операцию И, которая сохраняет байт таким, какой он есть (в чем я не вижу смысла). После этой строчки я потерялся. Что делает >>>?