RandomAccessFileオブジェクトを使用するプログラムを編集していて、ファイルオブジェクト以外のデータに別のソースを使用する独自のRandomAccessFileクラスを考え出したい(これはAmazon WebServices S3オブジェクトですが、関係ありません)。
基本的には、RandomAccessFileをスーパークラスとするRandomAccessS3というクラスを作りたいので、簡単に言うことができます。
RandomAccessFile raf = new RandomAccessS3();
したがって、既存のコードを同じに保ちます。RandomAccessFileのすべてのメソッドをオーバーライドするだけです。
問題は、サブクラスRandomAccessS3のコンストラクターで、パラメーターとしてファイル名を受け取るsuper(file、mode)を使用してRandomAccessFileのコンストラクターを呼び出さなければならず、ファイルが無効な場合はエラーをスローして終了することです。
コンストラクターの最初の行はsuperである必要があるため、super()呼び出しをtry/catchブロックで囲むことはできません。ダミーファイルを提供することはできますが、ユーザーにそれを強制したくありません。これを回避する簡単な方法はありますか?
ありがとう!