前几天我正在查看java.security.BasicPermission API。为什么它有私有方法?
private void readObject(ObjectInputStream s) 调用readObject以从流中恢复BasicPermission的状态。
对不起,我不清楚我问的是什么。这个班只是一个例子。 Java库中有很多。所有这些都是read | write Object方法。当他们设计这个API时,为什么他们会添加一个应用程序无法使用的私有方法?
答案 0 :(得分:2)
readObject
是反序列化时Java序列化框架使用的,以提供对自定义操作的支持。与大多数私有方法不同,它通常不会在类本身内调用< - >而是由框架/ JVM调用,这显然违反了正常的期望。
有关详细信息,请参阅docs for Serializable
。
答案 1 :(得分:1)
该方法可能是由其他公共方法之一在内部调用的,不应该是API用户的关注。
答案 2 :(得分:0)
私有方法是API无法访问的方法,但在内部用于执行某些操作。
例如,采用像微波这样的现实世界的例子。它会有外部用户输入,如bake(),heat()等...但是像cookFor(时间分钟,温度t)这样的私有内部函数。
所以现在微波实现非常简单,
public void bake() {
cookFor(45, 300);
}
public void heat() {
cookFor(5, 100);
}
等。我们有函数的原因是编写好的过程程序,私有/公共描述符用于封装类。