私は次のようにAssetManagerのopenFd()メソッドを使用してAssetFileDescriptorのインスタンスを構築しています:同じファイルを参照する場合、AssetFileDescriptorの2つのインスタンスが等しくないのはなぜですか?
String path = "myDir/myfile.wav";
AssetFileDescriptor descriptor = getAssets().openFd(path);
AssetFileDescriptor descriptor2 = getAssets().openFd(path);
boolean areEquals = descriptor.equals(descriptor2);
をこの場合、areEqualsはAssetFileDescriptorクラスは、equals()メソッドをオーバーライドしていないため、falseです。
これは、AssetFileDescriptorインスタンスをHashMapのキーとして使用すると問題を引き起こします。
同じアセットファイルを参照するとき、AssetFileDescriptorの2つのインスタンスが等しいとは限りませんか?あなたのケースでは
なぜ同じであるべきですか? – Blackbelt
'AssetFileDescriptor'は間違いなくそのように使われることを意図していません。 – Henry
@Blackbelt彼らは同じファイルを記述しているので、それらは等しいと思う。 – matdev