问题标签 [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 回答
704 浏览

java - 外化 Java 对象 - HashMap

Externalizable 接口似乎很难使用。原因

  1. 对象中的字符串可以为空。所以,我已经创建和序列化标志来提到天气或不做 inReader.readUTF()
  2. 对于 Java 列表,它更加困难。

我不确定,将 java HashMap 外部化的最佳方法是什么,因为我会在阅读时知道有多少键以及是否有任何值为 null。

0 投票
2 回答
3452 浏览

java - Java 外部化与瞬态

我正在考虑外部化的目的,因为您可以简单地将属性标记为transient并防止其序列化。但是,经过进一步研究,我发现transient如果您需要在运行时决定需要什么,这种方法(即标记为)可能并不理想。从理论上讲,这对我来说是有意义的。但是,实际上我看不到 Externalization 如何对运行时更友好。writeExternal()我的意思是,您仍然必须决定在类的定义中和readExternal()期间需要什么。那么,这如何对运行时更友好呢?

强调这一点的文件如下,

如果一切都是通过实现 Serializable 接口来自动处理的,为什么会有人喜欢实现 Externalizable 接口并费心去定义这两个方法呢?只需对过程进行完全控制。好的......让我们举个例子来理解这一点。假设我们有一个具有数百个字段(非瞬态)的对象,并且我们希望仅将少数字段存储在持久存储上,而不是全部。一种解决方案是将所有其他字段(除了我们想要序列化的字段)声明为瞬态,默认的序列化过程将自动处理这一点。但是,如果这几个字段在设计时不是固定的,而是在运行时有条件地决定。在这种情况下,实现 Externalizable 接口可能是一个更好的解决方案。

0 投票
1 回答
30 浏览

java - 有没有办法让 readExternal() 使用另一个构造函数?

当我意识到我无法在该方法中创建新对象(并使用它)时,我试图readExternal从接口实现以更有效地序列化我的大对象。Externalizable关键是我的有效表示需要被破译,因此我不能直接分配我的字段。代码如下所示:

现在我从我得到的对象中复制所有字段,但它看起来很难看,我想知道是否有更好的方法来处理这样的事情?

0 投票
2 回答
567 浏览

java - java中的外化

我试图将一个对象放入一个文件中,然后尝试使用 Externalizable 接口读取同一个对象,我得到一个异常,没有 Car 类的有效构造函数。

有人可以解释错误是什么吗?

0 投票
3 回答
959 浏览

java - 当类字段的数据类型改变时处理反序列化

我有一个可序列化的类。

我已经将类的对象序列化到一个文件中。现在我已将名称的数据类型从 String 更改为 List。因此,在反序列化时,我得到了一个类转换异常,因为它无法从 String 转换为 List。每次对类进行一些更改时,我都在考虑更改类的版本,以便在 readExternal 中我可以明确地处理它。然而,虽然这个想法可能适用于简单的类,但在较大的复杂类的情况下会失败。任何人都可以请提供一个更简单的解决方案。

谢谢

0 投票
1 回答
220 浏览

java - readExternal() 没有按预期工作?

Externalization在这个例子中使用。首先,我使用方法将对象序列化到名为“tmp”的文件中writeExternal()。但是当我使用反序列化它时,readExternal()我得到的输出如下......

这里为什么没有连载车名和年份?如果被序列化,为什么我会得到null它们0的值......请指定..

0 投票
0 回答
149 浏览

java - 在同一个类中实现可序列化和可外部化?

我正在阅读 Java 中的序列化和外部化。

单独我能够使用这两个接口并且能够序列化和反序列化一个对象。

但是就像在Java中一样,一个类可以实现多个接口。我在单个类中实现了两个接口。

现在在运行时,我如何选择要选择的序列化机制?

我想知道为什么以前没有问过这个问题!这个问题太蹩脚了吗?

编辑:我的问题与论坛上已经提出的问题不同。

0 投票
0 回答
29 浏览

externalizable - 为什么实现 **Externalizable** 的类不能使用 JVM 提供的自动生成的无参数构造函数?

为什么实现 Externalizable 的类不能使用 JVM 提供的自动生成的无参数构造器?为什么它需要一个无参数的构造函数?

0 投票
1 回答
98 浏览

java - 序列化:找不到所需序列化对象的不可序列化组件

我得到了一个应该序列化的对象。Atm 我让它实现 Serializable 但在运行时我得到一个

最后一个异常(java.io.Externalizable.() 无限次出现) 我试图找到不可序列化的字段,但我只能看到它在序列化 ConcurrentHashMap 时引发异常。我知道这不是很多信息,但完整的堆栈跟踪非常大。任何提示如何找出地图中的哪个字段负责非序列化?或者我应该添加哪些信息?问候

0 投票
2 回答
92 浏览

java - 代号一 - Web 服务不支持可外部化对象

我创建了一个 CN1 Web 服务,其中一些我想要外部化以便通过网络发送的自定义对象。我阅读了几篇关于如何创建 Web 服务以及如何使用 CN1 Externalizable 接口的文章。

这适用于返回自定义可外部化对象的 Web 服务方法,但是我拥有的唯一指标是将可外部化对象作为参数的方法,我收到以下错误:

该对象已正确注册到 Util 类,因为更改对象 ID 或注释掉注册调用将导致空指针而不是 IO 异常。

Post 类看起来像这样(简化到已经失败的最小值):

请注意,当我调用返回 post 对象的 Web 服务方法时,此 Post 对象运行良好,但当我将 Post 对象发送到 Web 服务时则不行:

我不知道我在这里错过了什么。

谢谢和最好的问候