2014-02-05 20 views
0

我創建了一個庫的方法可見方法,我想限制的一些方法的可見性。這些方法被聲明爲public,因爲它們在整個庫中使用(在不同的包中)。我怎樣才能做到這一點 ?如何選擇一個庫

例子:

public class X{ 
     public void A(); 
     public void B(); 
    } 

我只想方法的通過集成庫,而不是方法B.

由於應用程序可見!

+1

邏輯,方法的只會是那些誰整合你的庫可見......它已經他們的方式,你怎麼想它是 – waqaslam

+0

我覺得他不希望B到顯示爲好。如何使b protexted? –

+0

問題是B在我的lib的不同包中使用。 ProGaurd可以幫助解決這個問題,還是有更簡單的方法? – Megaman

回答

0

如果你需要方法B()在你的公共圖書館,那麼你就不能隱藏它的人誰使用該庫。

你可以在類X分離成一個接口和一個實現,並且只露出接口庫的用戶:

public interface X { 
    public void A(); 
} 

public class XImpl implements X { 
    @Override 
    public void A() {...} 

    public void B() {...} 
} 

這工作如果庫是可以改變的內部使用XImpl,所以你仍然可以在不投射的情況下使用B()方法。

0

刪除訪問修飾符從B法,使其只在其包裝內提供。

public class X{ 
    public void A(); 
    void B(); 
} 

或將其標記爲受保護的,以便其在子類中也可用。

public class X{ 
    public void A(); 
    protected void B(); 
} 

欲瞭解更多信息,請閱讀this

相關問題