はのは、私自身のプロジェクトで、私はcom.3rdparty.foo
という名前のサードパーティ製のパッケージを使用するとしましょう、とそのパッケージでパッケージのプライベートフィールドを持つクラスがあります:私はパッケージプライベートフィールドが「ARENことを実現今自分のクラスをサードパーティのパッケージに入れることは可能ですか?
package com.3rdparty.foo;
public class Bar {
public void someMethod() { ... }
int ppField;
}
そのパッケージの外でアクセスされるはずです。しかし、好奇心から、私自身のクラスを作成し、例えば、そのサードパーティ製のパッケージにそれを属性、パッケージのプライベートフィールドの保護を回避するためにすることが技術的に可能である:
// MyOwnClass.java
package com.3rdparty.foo;
import com.3rdparty.foo.Bar;
public class MyOwnClass {
public int hackPPField (Bar b) { return b.ppField; }
}
私は、これは技術的に不可能であることを期待。しかし、実際そうであれば、パッケージシールの正確なメカニズムを知りたいので、サードパーティのパッケージを任意に拡張することができません。