3
比方說,我在自己的項目中,我使用一個名爲com.3rdparty.foo
第三方包,該包中有一個包,私人領域的類:是否可以將我自己的課程放入第三方包中?
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; }
}
我希望這是技術上不可能。但是,如果確實如此,那麼我想知道封裝封裝的確切機制,它可以防止您任意擴展第三方封裝。