![](/img/trans.png)
[英]Java Generics, return type to access only protected methods of the abstract type
[英]Java: protected or public access for library methods that I intend to override only?
我正在編寫一個框架庫,其中有一些我只打算被覆蓋,從不在庫外調用的方法。 但是,將它們public
也沒有安全風險。 我有一種印象,就是要被覆蓋的方法在庫中聲明為public
,並且僅在存在某些安全風險時才使用protected
方法? 如果通過將它們公開而沒有可行的安全風險,那么是否有理由選擇其中一個?
安全永遠不會成為問題,因為反射可以繞過程序包訪問。 “保護”是一種與人類交流的方法,如果有人從類或其子類外部調用該方法,則該類並非旨在以明智的方式進行操作。
這基本上是一個風格問題。 我的經驗法則是盡可能采用最嚴格的政策,即,相對於public
更喜歡protected
。 如果將來您決定要公開這些方法,則可以隨時將其public
。 但是,如果您開始將它們public
然后又不得不更改其簽名,那么您就有可能會破壞可能誤用了它們的其他人的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.