2014-07-17 67 views
6

我正在爲android開發一個庫(jar),並且遇到了我希望我的類或方法僅在我的庫中可訪問但不在我的庫之外的情況。不使用修飾符會使該類在該包中可訪問,但是如果沒有修飾符,則無法使用此類,因爲不使用修飾符會使其在其他不需要的包中不可訪問。例如, 我有一個班級說,在註釋中隱藏使用@hide的方法/類

public class Globals { 

    public static String thisDeviceAddress; 
    public static String thisDeviceIP; 
    public static String thisDeviceName = ""; 

} 

這個類是無處不在的。問題是我希望它能夠在我正在開發的庫中訪問,但不在庫之外。我已經知道使用註釋@hide將解決問題。例如:

/** 
* @hide 
*/ 
class Globals { 

    public static String thisDeviceAddress; 
    public static String thisDeviceIP; 
    public static String thisDeviceName = ""; 
} 

我GOOGLE了一下,但很多不能找到一種方法來實現@hide。只使用@hide而沒有圖書館不會隱藏課程。所以,請給我適當的指導。任何圖書館都要使用?任何解決這個問題的方法?

+0

'@ hide'將不起作用 - 它只是在構建SDK時從存根android.jar中刪除一個符號,因此無法編寫代碼直接訪問它們。符號將在運行時存在,並可通過反射訪問。但這不是解決您的問題的方法。 – laalto

+0

感謝您的回覆。如果通過反射訪問類/方法,我沒有問題。但我不想讓它直接可見。如果它有效,請告訴我需要設置哪些內容以使用@hide。 – Dipendra

+0

@Dipendra,我在這裏也有同樣的情況。你有沒有找到解決方案? –

回答

0

無法隱藏公共類和方法。這是Java語言規範,你不能破壞它。