问题标签 [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 投票
11 回答
128497 浏览

java - What is the difference between Serializable and Externalizable in Java?

What is the difference between Serializable and Externalizable in Java?

0 投票
2 回答
1272 浏览

java - 通过带有序列化的 TCP 通道发送大文件

我正在用 Java 开发一个客户端-服务器系统。我通过带有序列化对象的 TCP 通道发送消息。

我还需要发送文件。我可以定义自己的自定义消息类:

并发送它。如果我们有一个大文件,这会带来一个问题,据我了解,它会在将文件发送到另一端之前尝试将所有内容都保存在内存中。

我已经阅读过,Externalizable但如果在通过 TCP 通道发送文件之前仍在将文件读取到我所有计算机的内存中,那也不会更好。我想要一些“懒惰”的方式来做到这一点(当我通过网络发送它时从磁盘读取它,并从内存中丢弃已经读取的内容)。

处理这个问题的最干净的方法是什么?在最坏的情况下,我可以把它分成小块,但如果可能的话,我想避免它。

编辑:

当然,我可以在文件上打开一个流并“发送”。但这意味着以不同的方式处理发送文件和所有其他消息,这是我希望避免的。

谢谢

0 投票
1 回答
337 浏览

java-me - lwuit.io.Storage 关闭应用程序后清除

我正在尝试使用 lwuit.io.Storage,它在应用程序运行时工作正常(我可以做 crud),但它的数据在关闭应用程序后清除。我考虑过:

  • 用 "Util.register("Car", Car.class);" 注册我的课程 在“initVars()”方法中;
  • 在“Car”类中实现“Externalizable”接口。// "getObjectId()" 方法返回 "Car"
  • 调用 "Storage.init("myProjectName");" 在 MainMIDlet 类中
  • 检查以确保使用 MainMIDlet 类中的“Storage.isInitialized()”正确初始化存储
  • 我使用 Vector 存储我的“汽车”对象,使用:

    /li>
  • 避免调用“Storage.getInstance().clearStorage();” 代码中的任何地方!

  • “Storage.getInstance().listEntries();” 返回一个包含“cars”字符串的元素数组(即使在重新启动应用程序后)。

是我简单的“汽车”课程。

知道我在这里缺少什么/做错了吗?

提前致谢

0 投票
1 回答
545 浏览

java - 使用 XStream 对 Externalizable 类使用默认的 Java 序列化

我使用 XStream 作为我的应用程序的一部分来序列化对象。对于其中一个用例,我必须序列化一些实现 Externalizable 接口的对象。对于我的用例,我想使用本机 Java 序列化对它们进行序列化。

我在互联网上找到了一个链接http://old.nabble.com/How-to-remove-Externalizable-Converter-td22747484.html,它帮助我解决了这个问题并开始使用反射转换器来处理可外部化的对象。

在测试应用程序时,我看到应用程序在高并发访问期间在转换器代码中花费了大量时间(10 秒)。我可以看到问题出在FieldDictionary的 buildMap 方法中。

我想知道是否有更好的方法来解决我原来的问题?在具有高并发环境时,反射转换器的性能是否会变差?

提供一些关于环境的额外上下文。它是一个 Web 应用程序,在请求处理期间发生序列化,应用程序可以有 100 个并发线程。

我非常感谢有关此的任何帮助/建议。

0 投票
3 回答
1596 浏览

java - 为什么当我们可以在 java 中覆盖 writeObject 和 readObject 时我们有 Externalizable

由于我们可以通过覆盖 writeObject() 和 readObject() 来覆盖默认的序列化过程,那么 Externalizable 接口需要什么?

0 投票
3 回答
5588 浏览

java - 需要默认公共构造函数的服务加载器实现

我试图了解 Java Service Loader 的工作原理?我遇到了这个博客

您能否帮助我理解作者为何声称:

实现必须有一个公共的无参数构造函数。

好的,我得到了第一部分。现在是一个后续问题。我可以将其作为后续问题发布,但认为将其作为同一问题的一部分会更好。

考虑java 文档

它说:

此外,必须编译非私有内部成员类的构造函数,使其第一个参数是表示直接封闭实例的附加隐式参数(第 8.1.3 节)。

这是否意味着我不能将内部类外部化。请考虑以下代码:

它在运行时失败:

如何使用 Externalize 类 ABC?

谢谢

0 投票
1 回答
352 浏览

java - Java 中组合对象的可外部化接口实现。(LWUIT)

我正在尝试实现 Externalizable 接口以使用 LWUIT-IO 的存储来存储数据。这对于由字符串、布尔值和整数组成的简单对象非常有用。

但是,我有一个由这些类型组成的对象,而且还由上述 Externalizable 对象的 Vector 组成。这似乎弄乱了过程,当我尝试从存储中检索对象时,我什么也没得到。

我假设它就像 Serializable 接口,并且主对象内的 Externalizable 对象是自动处理的。我不确定这是否属实,或者为什么它失败了。

对象内部的对象是:

包含对象如下:

我做错了什么或遗漏了什么导致播放列表(包含对象)无法存储,而如果我尝试单独存储第一个它可以工作?

请注意,重写方法与普通 Java 不同,因为这是 Externalizable 接口的 LWUIT 版本。

0 投票
1 回答
227 浏览

java - 如何创建一个 Eclipse 插件来自动创建现有类的 read/writeExternal 方法

如何创建 eclipse 插件以在现有代码 java 类上自动创建序列化代码 read/writeExternal?

所需的步骤从活动选项卡获取类(和/或类字段信息的信息,如大纲窗口中的一个)并为每个字段生成代码,也许使用反射也会有所帮助。

0 投票
1 回答
6110 浏览

sql-server - 例外:不支持从 UNKNOWN 到 UNKNOWN 的转换

我正在将一些 jdbc 代码从 MySql 转换为 SQL Server。当试图

最后一条语句stmt.setObject(4,o)引发异常。

该类的 writeExternal() 方法实现为

有问题的数据库列定义为 varbinary(max),而不是 null

该代码使用 MySql 运行良好,但我不知道如何使其与 Sql Server 一起运行。

任何建议将不胜感激

0 投票
2 回答
5256 浏览

java - Externalizable 与 Serializable 有何不同?

我读到了

Externalizable 为我们提供了 writeExternal() 和 readExternal() 方法,这让我们可以灵活地控制 java 序列化机制,而不是依赖于 Java 的默认序列化。

但是,如果我实现 Serializable 并覆盖readObject(), writeObject(), ,那么这是否也意味着我正在自定义序列化过程?

它有什么不同?

谢谢。