Я редактирую программу, которая использует объект RandomAccessFile, и я хочу создать свой собственный класс RandomAccessFile, который использует другой источник данных, отличный от файлового объекта (это объект S3 Amazon webservices, но это не имеет значения)
Я хочу создать класс с именем RandomAccessS3, в котором в качестве суперкласса используется RandomAccessFile, поэтому я могу просто сказать
RandomAccessFile raf = new RandomAccessS3 ();
и, следовательно, оставьте существующий код прежним. Я просто переопределю каждый метод в RandomAccessFile.
Проблема в том, что в конструкторе подкласса RandomAccessS3 я вынужден вызывать конструктор RandomAccessFile, используя super (file, mode), который принимает в качестве параметра имя файла, выдает ошибку и умирает, если файл недействителен.
Я не могу окружить вызов super () блоком try / catch, потому что super должен быть первой строкой в конструкторе. Я мог бы предоставить фиктивный файл, но я не хочу заставлять пользователя делать это. Есть ли простой способ обойти это?
Спасибо!