簡體   English   中英

Java有什么辦法可以使方法只能由類和子類使用?

[英]Java any way to keep a method usable only by class and subclasses?

我完全了解Java中publicprotectedprivate的工作方式。 我想知道是否可以在私有和受保護之間模擬修飾符。 我只希望一個班級及其子級能夠訪問其子級。

我想這樣做是因為我有一個Savable類,它存儲一個int databaseID Savable有一個save()方法,該方法存儲DBID,然后調用protected abstract ContentValues getSaveData ()來從其子級獲取任何其他信息以寫入DB。 但是,這是不安全的設計。 ContentValues將存儲所有對象信息(私有的或不寫入數據庫的信息)。

現在,盡管我可以在Savable保存一個抽象方法,但我還是希望保留現在的結構,因為稍后我將數據添加到Savable類中,並且我希望永遠不必將數據公開給用戶。

那么,有什么方法可以模仿Java中僅用於兒童的修飾符? 如果沒有,我可以將用戶提供的所有數據的加密值存儲在getSaveData()

要求的代碼:已刪除,因為不再需要。

那么,有什么方法可以模仿Java中僅用於兒童的修飾符?

不。 我們僅有的訪問修飾符是您列出的那些。 還有“默認”可見性,也就是“ package-private”,但這不能使元素可用於子類。 因此,您可能只使用protected而不必擔心。

聽起來更好的解決方案可能是對代碼進行重構,但是您的問題沒有什么具體的。

我能想到的唯一方法是將方法設置為protected ,並將類放入其自己的包中。

如果你自己在寫孩子,那么你可以使他們final

將其與protected修飾符混合在一起,將為您提供所需的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM