我正在编辑一个使用 RandomAccessFile 对象的程序,并且我想提出我自己的 RandomAccessFile 类,该类对文件对象以外的数据使用不同的源(它是 Amazon webservices S3 对象,但这无关紧要)
我想基本上创建一个名为 RandomAccessS3 的类,它以 RandomAccessFile 作为其超类,所以我可以简单地说
RandomAccessFile raf = new RandomAccessS3();
因此保持现有代码相同。我将简单地覆盖 RandomAccessFile 中的每个方法。
问题是在子类 RandomAccessS3 的构造函数中,我被迫使用 super(file, mode) 调用 RandomAccessFile 的构造函数,该构造函数将文件名作为参数,如果文件无效则抛出错误并死掉。
我不能用 try/catch 块包围 super() 调用,因为 super 必须是构造函数中的第一行。我可以提供一个虚拟文件,但我不想强迫用户这样做。有什么简单的方法可以解决这个问题吗?
谢谢!