Ojbect をバイト配列ストリームに書き込む次のコードがあります。
static byte[] toBytes(MyTokens tokens) throws IOException {
ByteArrayOutputStream out = null;
ObjectOutput s = null;
try {
out = new ByteArrayOutputStream();
try {
s = new ObjectOutputStream(out);
s.writeObject(tokens);
} finally {
try {
s.close();
} catch (Exception e) {
throw new CSBRuntimeException(e);
}
}
} catch (Exception e) {
throw new CSBRuntimeException(e);
} finally {
IOUtils.closeQuietly(out);
}
return out.toByteArray();
}
ただし、FindBugs は次の行について不平を言い続けます。
s = new ObjectOutputStream(out);
「ストリームを閉じられない可能性があります」 - BAD_PRACTICE - OS_OPEN_STREAM. 誰か助けてくれませんか?