の JavaDoc は次のようにjava.awt.WritableRaster
述べています。
このクラスのコンストラクターは保護されています。をインスタンス化するには、クラスのファクトリ メソッド
WritableRaster
の 1 つを使用します。createWritableRaster
Raster
type のカスタムDataBuffer
サブクラス (NIOでサポートされている) を使用しているため、ファクトリ メソッド [1] を使用できません。ファクトリ メソッドのようにクラスを直接使用することもできますが、sun.* クラスに依存するのは好きではありません。代わりに、次のようなサブクラスを作成しました。ByteBuffer
DataBuffer.TYPE_INT
sun.awt.image.SunWritableRaster
WritableRaster
class GenericWritableRaster extends WritableRaster {
public GenericWritableRaster(final SampleModel model, final DataBuffer buffer, final Point origin) {
super(model, buffer, origin);
}
}
(toString()
メソッドもありますが、実際にはそれだけです)。
これまでのところ、私のニーズには問題なく機能しているようですが、互換性やパフォーマンスへの影響は何ですか?
[1] JDK のバグの可能性があるため、このメソッドは、後でコンストラクターで例外が実際に発生することをcreateWritableRaster(SampleModel, DataBuffer, Point)
前提としています。DataBuffer
DataBuffer.TYPE_INT
java.awt.DataBufferInt
IntegerInterleavedRaster