2

文档中说 readExternal() 和 writeExternal() 具有默认访问修饰符,我也使用默认访问修饰符实现它,但不知何故我有 2 个错误说我分配了较弱的访问修饰符?那为什么呢?(我知道使用默认修饰符我不能从其他包中序列化/反序列化对象)

错误1:

错误:(19, 10) java: readExternal(java.io.ObjectInput) in A 无法在 java.io.Externalizable 中实现 readExternal(java.io.ObjectInput) 尝试分配较弱的访问权限;是公开的

错误2:

错误:(16, 10) java: writeExternal(java.io.ObjectOutput) in A 无法实现 java.io.Externalizable 中的 writeExternal(java.io.ObjectOutput) 尝试分配较弱的访问权限;是公开的

class A implements Externalizable
{
    public A() {}
    
    @Override
    void writeExternal(ObjectOutput out) throws IOException {}
    
    @Override
    void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {}
}
4

0 回答 0