1

たとえば、プロジェクトでサードパーティの jar を使用していてA.jar、一部のメンバー (クラス、メソッドなど) がデフォルトのアクセス (パッケージ プライベート) であるとします。これで、プロジェクトで同じパッケージ名を作成すると、A.jar からデフォルトのアクセス修飾子を使用してメンバーにアクセスできます (Eclipse の Java プロジェクトでこれを試しました)。

オラクルのドキュメントには次のように書かれています。

クラスに修飾子がない場合 (デフォルト、package-private とも呼ばれます)、そのクラスは独自のパッケージ内でのみ表示されます。

A.jarパッケージ内のクラスのみがこの特定のメンバーにアクセスすることを望んでい たため、開発者が意図したものではないことを考えると、この特定のユース ケース (リフレクションを使用しない場合も同様) では、この哲学に違反していませんか?

また、package-private は便利なメカニズムですが、データの保護などには使用できないということですか?

4

1 に答える 1

0

A.jar の開発者がこの特定のメンバーにアクセスするためにパッケージ内のクラスのみを望んでいたため、A.jar の開発者が意図したものではないことを考えると、この特定のユースケース (リフレクションを使用しない場合も同様) では、この哲学に違反していませんか? ?

彼女がデフォルトのアクセス修飾子を使用した場合、彼女はデフォルトのメンバーを保護することにあまり関心がないでしょう。

于 2013-10-23T05:47:05.710 に答える