如何保護在另一個包中使用的類(來自不繼承的類)從外部實例化?這在Java中甚至可能嗎?不屬於公共API的類
0
A
回答
0
好吧,抽象類不能被實例化,但這可能不是你正在尋找的......我從來沒有聽說過這種可能。
1
化妝構造保護
public class ProtectClass {
protected ProtectClass() {
// TODO Auto-generated constructor stub
}
}
+0
這是行不通的。我不是繼承人。假設爲節點實現打包'org.sirix.node',爲事務的API實現打包'org.sirix.access'。然後,在org.sirix.access的完美世界中,節點包應該是可見的,但不能從外部看到。 – Johannes
+0
受保護的構造函數也可以從包中訪問,你不需要繼承!我認爲你必須爲這兩個類使用一個包,並使節點包的構造函數受到保護,並從訪問類中實例化它們。 –
相關問題
- 1. 公共包/類不應該是公共API的一部分
- 2. GraphQL不適用於公共API
- 3. 公共屬性不可子類
- 4. 設置公共類屬性
- 5. 從不同包中的類調用公共類的公共類
- 6. 關於在公共類
- 7. 公共存取VS類的公共屬性
- 8. 調用公共類中的公共類,從不同的包
- 9. 在公共C++ API中的類型
- 10. Java - 類公共API上的界限
- 11. 導出非公共類通過公共API
- 12. Netbeans警告:通過公共API導出非公共類型
- 13. 通過公共API導出非公共類型
- 14. 創建內部類的公共屬性?
- 15. 擁有C++類中的公共屬性
- 16. JavaScript中的原型/類/公共屬性
- 17. IllegalAccessException內部類的公共屬性
- 18. 不記號令牌不適用於Twitter的公共流API
- 19. 基於公共屬性(導軌)採摘
- 20. 在API中隱藏公共類c#
- 21. 通過公共API導出non_public類型
- 22. 在公共API使用可空類型
- 23. class_addmethod和公共API
- 24. 實施公共API
- 25. 非公共類
- 26. 有沒有辦法爲公共方法的子集生成Javadoc?例如,通過將公共方法註釋爲「不屬於公共API」
- 27. JUnit&警告通過公共API導出非公共類型的警告
- 28. TypeScript Setter的公共屬性
- 29. 保護公共API(不需要註冊)
- 30. 公共屬性和不變性
不,例如在一個樹形結構,只應創建的節點從事務內。使用節點構造函數確實沒有意義,因爲節點在任何事務中都是不可見的,並且不可持續,但可以實例化節點,因爲類必須是「public」,因爲事務實現在另一個包中。 – Johannes
如果需要從單獨的包中實例化,則可以做的事情不多。抱歉。除非有某種方法讓節點成爲受保護的類,並使需要實例化它們的類成爲朋友類。但我不知道這是否真的有可能,並且朋友們開放了其他潛在的問題...... –
謝謝,你知道Java8會有什麼事情嗎?嗯,我正在認真考慮混合Java和Scala ;-) – Johannes