如何使用接口使用 Kryo 序列化/反序列化对象

2024-02-19

是否可以通过注册接口而不是具体类来使用 Kryo 反序列化/反序列化对象?

具体来说,我需要反序列化 Java 7Path对象在接口中定义。

我尝试编写一个序列化程序,将路径 URI 保存为字符串,并在读取反序列化期间重新创建它。但事实证明,Kryo 从未调用我的序列化编写器方法。

这是我的(Groovy)代码:

class PathSerializer extends FieldSerializer<Path> {

    PathSerializer(Kryo kryo) {
        super(kryo, Path)
    }

    public void write (Kryo kryo, Output output, Path path) {
        def uri = path.toUri().toString()
        kryo.writeObject(output, uri)
    }

    public Path read (Kryo kryo, Input input, Class<Path> type) {
        def uri = kryo.readObject(input,String)
        Paths.get(new URI(uri))
    }
}

def kryo = new Kryo()
kryo.register(Path, new PathSerializer(kryo))

def path = Paths.get('hola')
Output output = new Output(new FileOutputStream("file.bin"));
kryo.writeObject(output, path);
output.close();

知道如何使用 Kryo 注册序列化接口吗?

Thanks


Use the addDefaultSerializer method:

kryo.addDefaultSerializer(Path, new PathSerializer(kryo))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用接口使用 Kryo 序列化/反序列化对象 的相关文章

  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • 使用cameltestsupport进行Camel单元测试,模板始终为空

    我正在用 Camel 做一个简单的单元测试 我想做的就是从文件 在资源下 读取 JSON 内容 将其发送到 Java 类进行验证 这是我试图测试的路线 无论我做什么 模板 我用来发送正文 json 始终为空 这是我的代码 public cl
  • 无法使用maven编译java项目

    我正在尝试在 java 16 0 1 上使用 maven 构建 IntelliJ 项目 但它无法编译我的项目 尽管 IntelliJ 能够成功完成 在此之前 我使用maven编译了一个java 15项目 但我决定将所有内容更新到16 0 1
  • Spring安全“记住我”cookie在第一个请求中不可用

    我无法在登录请求后检索 Spring 记住我 cookie 但它在对受保护页面的下一个请求中工作正常 谁能告诉我怎样才能立即得到它 我在登录请求中设置了记住我的 cookie 但在 Spring 重定向回原始 受保护的 url 后无法检索它
  • eclipse中导入项目文件夹图标

    我在 Eclipse 工作区中新导入的 Maven 项目有J and M项目文件夹顶部的图标 项目和包资源管理器 而其他导入的 Maven 项目只有一个J icon 有人可以解释其中的区别吗 该项目有J装饰器被称为 Java 项目和具有M装
  • 在 HTTP 标头中发送 UTF-8 值会导致 Mojibake

    我想使用 servlet 发送阿拉伯语数据HTTPServletResponse给客户 我正在尝试这个 response setCharacterEncoding UTF 8 response setHeader Info arabicWo
  • Firestore - RecycleView - 图像持有者

    我不知道如何编写图像的支架 我已经设置了 2 个文本 但我不知道图像的支架应该是什么样子 你能帮我告诉我图像的文字应该是什么样子才能正确显示吗 holder artistImage setImageResource model getArt
  • 主线程如何在该线程之前运行?

    我有以下代码 public class Derived implements Runnable private int num public synchronized void setA int num try Thread sleep 1
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co
  • 如果使用的 JVM 是 x86 或 x64,则以不同的方式解决 Maven 依赖关系?

    我设置了一个 Maven 存储库来托管一些 dll 但我需要我的 Maven 项目根据使用的 JVM 是 x86 还是 x64 下载不同的 dll 例如 在运行 x86 版本 JVM 的计算机上 我需要从存储库下载 ABC dll 作为依赖
  • 如何将 android.net.Uri 转换为 java.net.URL? [复制]

    这个问题在这里已经有答案了 有没有办法从Uri to URL 我正在使用的库需要这个 它only接受一个URL但我需要在我的设备上使用图像 如果该方案的Uri is http or https new URL uri toString 应该
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • 隐式超级构造函数 Person() 未定义。必须显式调用另一个构造函数?

    我正在开发一个项目 但收到错误 隐式超级构造函数 Person 未定义 必须显式调用另一个构造函数 我不太明白它 这是我的人物课程 public class Person public Person String name double D
  • Java 收集返回顶级项目的映射的嵌套流

    我有以下模型 class Item String name List
  • 为什么要序列化对象需要 Serialized 属性

    根据我的理解 SerializedAttribute 不提供编译时检查 因为它都是在运行时完成的 如果是这样 那么为什么需要将类标记为可序列化呢 难道序列化器不能尝试序列化一个对象然后失败吗 这不就是它现在所做的吗 当某些东西被标记时 它会
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 尝试使用等于“是”或“否”的字符串变量重新启动 do-while 循环

    计算行程距离的非常简单的程序 一周前刚刚开始 我有这个循环用于解决真或假问题 但我希望它适用于简单的 是 或 否 我为此分配的字符串是答案 public class Main public static void main String a
  • 为什么java中的for-each循环中需要声明变量

    for 每个循环的通常形式是这样的 for Foo bar bars bar doThings 但如果我想保留 bar 直到循环结束 我可以not使用 foreach 循环 Foo bar null Syntax error on toke
  • JVM:是否可以操作帧堆栈?

    假设我需要执行N同一线程中的任务 这些任务有时可能需要来自外部存储的一些值 我事先不知道哪个任务可能需要这样的值以及何时 获取速度要快得多M价值观是一次性的而不是相同的M值在M查询外部存储 注意我不能指望任务本身进行合作 它们只不过是 ja
  • Java &= 运算符应用 & 或 && 吗?

    Assuming boolean a false 我想知道是否这样做 a b 相当于 a a b logical AND a is false hence b is not evaluated 或者另一方面 这意味着 a a b Bitwi

随机推荐

  • Rails - 当模型验证失败时,URL 更改会令人困惑

    我有一个用户资源在哪里 name是模型上的必需属性 如果我尝试创建一个新用户without一个名称 则验证失败并且错误消息按预期显示在表单顶部 but页面的 URL 更改为 users new to users 直到今晚我第一次开始玩水豚时
  • Microsoft Azure 备份在保留期缩短后不会减少可用恢复点或目标使用情况

    在保留期缩短后 Microsoft Azure 备份不会减少可用恢复点或目标使用情况 我将保留期设置为 30 天 备份量约为 6 8TB 一周前 我将保留期更改为 7 天 花了几天时间总恢复点才降至 7 个 使用率仍在上升 我今天 星期一
  • Django 每个应用程序的不同设置

    如何为每个应用程序使用不同的设置 例如 http www mysite com app1 http www mysite com app1使用 app1 文件夹的 settings py local settings py http www
  • git 合并不同的存储库?

    我所有的项目都使用 SVN 有时项目 B 是项目 A 的副本 当项目 A 有一般性变更时 我可以使用svn merge A在目录 B 中 它将合并这些更改 现在 如果我想使用 git 我不喜欢将所有项目放在同一个存储库中 因为这样我就必须克
  • WPF:找不到 Microsoft_Windows_Themes

    我在 WPF 应用程序中收到此错误 找不到类型 Microsoft Windows Themes ScrollChrome 验证您没有缺少程序集引用并且所有引用的程序集均已构建 任何想法 确保将此引用添加到控件 页面 资源字典 其他内容的最
  • 读取外部网站提交的 Angular 中的 POST 表单

    我正在开发一个网站 后端使用 Java 前端使用 Angular 有一种情况 一些外部网站可能会使用POST形式向我的网站发送数据 例如 General请求网址 https myangularwebsite 请求方式 POST 请求标头内容
  • 我可以在四元数中切换 X Y Z 吗?

    我有一个 Y 轴向上的坐标系 我需要将其转换为 Z 向上的坐标系 我将旋转存储在四元数中 所以我的问题是 如果我有一个四元数 X Y Z 我可以用 Z 切换 Y 并得到 Z 实际上是 UP 的结果吗 只是交换四元数中的两个轴 不 这不起作用
  • Azure Bicep - 有条件地创建一个秘密

    我正在使用 Bicep 创建一个 KeyVault 并且我想在保管库中创建一个秘密 但前提是还没有给定名称的秘密 检查 KeyVault 是否存在不起作用 因此我现在正在检查特定标签是否存在 创建 Vault 时 我在资源组中写入一个标签
  • 如何查看.RData 文件中的数据?

    我必须加载 isfar RData 文件才能在其他计算中使用它 此处描述并不重要 我想简单地看看 isfar RData 文件中的数据如何 例如它携带什么数字 列 行 首先我加载我的文件 isfar lt load C Users isfa
  • 打印 NSMutableURLRequest 内容

    我想问是否有人尝试过打印 NSMutableURLRequest request 的值 这是我的场景 我已经形成了我的 XML 并尝试使用 Firefox Poster 插件发送它 我成功地处理了有效和无效的内容 所以是时候进入 iOS 了
  • 全面的初学者 virtualenv 教程? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我最近听到有关 virtualenv 的传闻 我很感兴趣 但我所听到的只是一些赞扬 并不清楚它是什么或如何使用它 我正在寻找 理想情况下
  • java中如何调用一个线程在特定时间运行?

    我想让线程在特定的确切时间执行 例如 2012 07 11 13 12 24 和 2012 07 11 15 23 45 我检查了ScheduledExecutorService 但它只支持在第一次运行后的特定时间段后执行 而且我没有任何固
  • UITableView 在动画过程中崩溃,已找到解决方案,但没有找到根本原因,想知道为什么?

    在我的iphone项目中 我总是将UITableView作为IBOutlet插入到视图控制器中 大多数时候它运行良好 但是当popToRootViewControllerAnimated调用动画时会发生随机崩溃 通过僵尸跟踪 发现崩溃是由于
  • 如何构建 JSON 对象?

    目前我通过执行以下操作构建 JSON 对象 users User all users each do user userlist lt lt id gt user id fname gt user fname lname gt user l
  • 使用 C# 和 WIN32 滚动记事本

    我正在尝试使用 C 应用程序滚动记事本窗口 相关的代码块如下 移动 调整窗口大小的调用有效 所以我知道句柄是有效的 请你看看我错过了什么 运行时什么也没有发生 Flags public enum SetWindowPosFlags uint
  • 如何在启动新窗口时关闭当前窗口(在代码中)

    SignInWindow signIn new SignInWindow signIn ShowDialog 上面的代码位于我的 MainWindow 类中 当显示新窗口时 我希望关闭当前窗口 最好的方法是什么 我的应用程序是 C WPF
  • 使用 twitter bootstrap 创建工具提示/弹出窗口后的回调函数?

    我想在使用 twitter bootstrap 创建工具提示或弹出窗口后对其进行操作 据我所知 没有构建方法可以做到这一点 selector popover placement bottom 例如 假设我想将创建的工具提示从计算的位置向上移
  • 计算机视觉的统计帮助[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在计算机视觉领域做我的毕业项目 我只修了一门讨论非常基本概念的统计学课程 现在我在相当高级的主题上面
  • Android Kotlin 中的 Moshi - ENUM 作为 MutableMap 键在反序列化时转换为 String

    我有一个MutableMap
  • 如何使用接口使用 Kryo 序列化/反序列化对象

    是否可以通过注册接口而不是具体类来使用 Kryo 反序列化 反序列化对象 具体来说 我需要反序列化 Java 7Path对象在接口中定义 我尝试编写一个序列化程序 将路径 URI 保存为字符串 并在读取反序列化期间重新创建它 但事实证明 K