InputStream.read() メソッドを実装しているメソッドから返されている byte 型の式を報告します。

byte 型の式には -128 から 127 までの値が含まれますが、InputStream.read()0 から 255 までの範囲の値を返す必要があるため、これは疑わしいです。 クイックフィックスを使用するとビットマスク 0xFF が適用され、式が符号なしの byte に変換されます。

例:


class MyInputStream extends InputStream {
  int pos = 0;
  byte[] data;

  MyInputStream(byte[] input) {
    data = input;
  }

  @Override
  public int read() {
    if (pos == data.length) {
      return -1;
    }
    return data[pos++]; // 問題あり
  }
}

クイックフィックス適用後:


class MyInputStream extends InputStream {
  int pos = 0;
  byte[] data;

  MyInputStream(byte[] input) {
    data = input;
  }

  @Override
  public int read() {
    if (pos == data.length) {
      return -1;
    }
    return data[pos++] & 0xFF;
  }
}

2023.2 の新機能です