byte type returned from a method implementing the InputStream.read() method.
This is suspicious because InputStream.read() should return a value in the range from 0 to 255,
while an expression of byte type contains a value from -128 to 127.
The quick-fix converts the expression into an unsigned byte by applying the bitmask 0xFF.
Example:
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++]; // problem
}
}
After applying the quick-fix:
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;
}
}
New in 2023.2