繁体   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