问题标签 [externalizable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
59 浏览

java - 如何使用 writeExternal(可外部化接口)方法写入内存映射文件?

我有一个内存映射文件,我可以在其中写入如下值:

我有一个实现Externalizable覆盖writeExternal方法的类:

我想在位置 10 字节writeExternal的内存映射文件上调用该方法。myMemoryMappedFile所以在文件中,第 10 个字节将有 12 个字节包含变量this.epochBegin,this.epochEnddata.

不幸的是,我完全不知道如何链接这两个东西,内存映射文件和writeExternal过程。欢迎任何有关如何继续的提示。

0 投票
1 回答
388 浏览

java - 如何在 Java 中外部化列表

我有一个实现 Externalizable 的类,它包含三个对象和这三种对象类型之一的列表。我假设您将简单地在子类中实现可外部化,然后为成员对象定义外部读写,但是是否也可以包含列表,如果可以的话如何?

0 投票
1 回答
33 浏览

java - 为什么我没有 NotSerializableException?

NotSerializableException为什么我在序列化的类中没有原因A我有private B b没有序列化的原因,我知道如果类实现Serializable所有复合类也必须实现Serializable/ Externalizable

0 投票
1 回答
69 浏览

java - 实现 Externalizable 时是否需要显式默认构造函数?

我知道如果类A实现 Externalizable 它应该有无参数构造函数,但如果类没有任何构造函数(如我的A类),java 为它提供空的无参数构造函数。那么为什么我有一个错误呢?如果我明确地将无参数构造函数 ( public A() {}) 添加到A类中,一切都会好起来的。
错误:

线程“main”中的异常 java.io.InvalidClassException: A; 在 java.base/java.io.ObjectStreamClass.checkDeserialize(ObjectStreamClass.java:864) 在 java.base/java 的 java.base/java.io.ObjectStreamClass$ExceptionInfo.newInvalidClassException(ObjectStreamClass.java:159) 没有有效的构造函数。 io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2061) 在 java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1594) 在 java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)在 Test.main(Test.java:19)

0 投票
0 回答
30 浏览

java - 由于 java 中出现奇怪的较弱访问修饰符错误,我无法覆盖 Externalizable 中的方法

文档中说 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) 尝试分配较弱的访问权限;是公开的

0 投票
1 回答
53 浏览

java - 实现Externalizable,这样可以节省最多的空间

我有元素类,它具有以下属性(参见类)。由于两个整数值的范围非常小,我想将它们存储在一个简短的范围内。这对我不起作用。我想使用位移。我在这里做错了什么?这是一个学校作业,所以它必须是一个简短的。