我創建了一個庫的方法可見方法,我想限制的一些方法的可見性。這些方法被聲明爲public,因爲它們在整個庫中使用(在不同的包中)。我怎樣才能做到這一點 ?如何選擇一個庫
例子:
public class X{
public void A();
public void B();
}
我只想方法的通過集成庫,而不是方法B.
由於應用程序可見!
我創建了一個庫的方法可見方法,我想限制的一些方法的可見性。這些方法被聲明爲public,因爲它們在整個庫中使用(在不同的包中)。我怎樣才能做到這一點 ?如何選擇一個庫
例子:
public class X{
public void A();
public void B();
}
我只想方法的通過集成庫,而不是方法B.
由於應用程序可見!
如果你需要方法B()在你的公共圖書館,那麼你就不能隱藏它的人誰使用該庫。
你可以在類X分離成一個接口和一個實現,並且只露出接口庫的用戶:
public interface X {
public void A();
}
public class XImpl implements X {
@Override
public void A() {...}
public void B() {...}
}
這工作如果庫是可以改變的內部使用XImpl,所以你仍然可以在不投射的情況下使用B()方法。
刪除訪問修飾符從B法,使其只在其包裝內提供。
public class X{
public void A();
void B();
}
或將其標記爲受保護的,以便其在子類中也可用。
public class X{
public void A();
protected void B();
}
欲瞭解更多信息,請閱讀this。
邏輯,方法的只會是那些誰整合你的庫可見......它已經他們的方式,你怎麼想它是 – waqaslam
我覺得他不希望B到顯示爲好。如何使b protexted? –
問題是B在我的lib的不同包中使用。 ProGaurd可以幫助解決這個問題,還是有更簡單的方法? – Megaman