の JavaDoc は次のようにjava.awt.WritableRaster述べています。
このクラスのコンストラクターは保護されています。をインスタンス化するには、クラスのファクトリ メソッド
WritableRasterの 1 つを使用します。createWritableRasterRaster
type のカスタムDataBufferサブクラス (NIOでサポートされている) を使用しているため、ファクトリ メソッド [1] を使用できません。ファクトリ メソッドのようにクラスを直接使用することもできますが、sun.* クラスに依存するのは好きではありません。代わりに、次のようなサブクラスを作成しました。ByteBufferDataBuffer.TYPE_INTsun.awt.image.SunWritableRasterWritableRaster
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)前提としています。DataBufferDataBuffer.TYPE_INTjava.awt.DataBufferIntIntegerInterleavedRaster