web-dev-qa-db-ja.com

メソッドドキュメントは、Java docsとAndroid docsの間で異なります

Java docとAndroid doc in about methoddocuments。たとえばaboutsetReadable (boolean readable, boolean ownerOnly)メソッドで問題のある違いが見られることがあります。 Java doc は次のように述べています:

スロー:SecurityException-セキュリティマネージャーが存在し、そのSecurityManager.checkWrite(Java.lang.String)メソッドがファイルへの書き込みアクセスを拒否する場合

しかし Android docs は例外のスローについて何も言っていません。また、 Docs say

メソッドによってスローされる可能性のある例外はすべて、メソッドのパブリックプログラミングインターフェイスの一部です。メソッドを呼び出す人は、メソッドがスローできる例外について知って、それらに対して何をするかを決定できるようにする必要があります。

したがって、メソッドのAndroidドキュメントにスロー条件が表示されない場合、

  1. メソッドが例外をスローしないという意味ですか、それとも忘れられる可能性がありますか?
  2. JavaとAndroidの確率の違いについて、簡単な方法でドキュメントをチェックする必要がありますか?それは可能ですか?

注:私は知っています それ

GoogleのAndroidプラットフォームで使用される仮想マシンであるDalvikは、クラスライブラリのコアにHarmonyのサブセットを使用します。

しかし、それは同じクラスで同じメソッドの異なる実装の可能性を意味するとは思いません。

1
hasanghaforian

はい、AndroidとOracleJavaの間で、同じクラスの同じメソッドの異なる実装を持つことは非常に可能です。

AndroidはJVMを使用しません。AndroidのJavaとOracleのJavaはAPIです。= Androidは従来のJavaを使用せず、「Javaに似た」APIを使用します。

たとえば、OracleのHTTPURLConnectionとAndroidのHTTPURLConnectionの間には 実装の違い があります。そのクラスのメソッドは、プラットフォーム間で同じように動作しません。

特定の例では、2つの異なるプラットフォームを比較していることを思い出してください。 Androidプラットフォームには、アクセス許可モデルとファイル管理を処理するための異なる方法があるため、ファイル管理用のAPIが2つで異なる理由は理にかなっています。

これは、AndroidのJavaに例外をスローする同様のメソッドがないことを意味するのではなく、この特定のメソッドがスローしないことを意味します。OracleのJava Androidプラットフォームを使用している場合よりも、Androidプラットフォームを以前とは異なるものとして扱うことをお勧めします。

2
Ugo