`
fff
  • 浏览: 32119 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

serialize scala.Some with Kryo

阅读更多
对scala 反射不太明了,kryo里涉及到scala内置类时,经常因为没有无参构造而抛异常

Caused by: java.lang.InstantiationException: scala.Some
	at java.lang.Class.newInstance0(Class.java:357)
	at java.lang.Class.newInstance(Class.java:325)
	at com.esotericsoftware.kryo.Kryo.newInstance(Kryo.java:676)
	... 12 more



思路是,转化成java基础类解决;
obj.asInstanceOf[Option[Any]] 这句简直要了亲命了,一开始在想尽办法想把这个generic的T找到,最后发现Any解决所有问题,对于scala的generic还是需要研究

def writeObjectData(buffer: ByteBuffer, obj: Object): Unit = {
    if (obj == None) {
      kryo.writeClassAndObject(buffer, None)
    } else {
      kryo.writeClassAndObject(buffer, obj.asInstanceOf[Option[Any]].get)
    }
  }

def readObjectData[T](buffer: ByteBuffer, objType: java.lang.Class[T]): T = {
    val obj = kryo.readClassAndObject(buffer)
   if (obj == None) {
      None.asInstanceOf[T]
    } else {
      Some(obj).asInstanceOf[T]
    }
  }
分享到:
评论

相关推荐

    前端项目-jquery-serialize-object.zip

    本项目"前端项目-jquery-serialize-object"关注的是使用jQuery来序列化表单字段,将它们转换为JavaScript对象或JSON格式,这在提交表单数据到服务器时尤其有用。下面我们将深入探讨这一主题。 1. **jQuery 序列化...

    用来收集form表格数据封装的js,form-serialize.js

    如果表单域有很多,逐个提取很麻烦,使用这个封装好的可以整体获取,也就是能使用form-serialize库获取整体表单数据。获取的有两种返回值,一种是查询字符串,一种是对象。

    Serialize-javascript.zip

    Serialize-javascript 能够序列化 JavaScript 库成含有正则表达式和功能的 JSON 包。示例:var serialize = require('serialize-javascript'); serialize({  str : 'string',  num : 0,  obj : {foo: ...

    sendForm.js-Serialize.js

    在JavaScript编程领域中,"sendForm.js-Serialize.js"很可能是一个用于序列化表单数据的库或脚本。序列化是将HTML表单中的数据转换为URL编码字符串的过程,这在进行Ajax请求或者发送POST数据时非常常见。下面将详细...

    ajax-axios-url-form-serialize 插件

    **Ajax Axios URL Form Serialize 插件详解** 在Web开发中,数据交互是不可或缺的一部分,而Ajax技术正是实现页面异步更新的关键。随着前端框架的不断发展,像Vue.js这样的库广泛使用,Axios作为一款强大的HTTP...

    JavaWeb新版教程. JSON和Ajax请求&i18n国际化X-jQuery的serialize方法.avi

    JavaWeb新版教程. JSON和Ajax请求&i18n国际化X-jQuery的serialize方法.avi

    Serialize.Linq:C#库用于序列化LINQ表达式

    Serialize.Linq是用于序列化linq表达式的ac#库。 它支持(但不限于)的格式为JSON,XML和BINARY。 安装 通过简单安装: PM> Install-Package Serialize.Linq 建立源 git clone ...

    form-serialize

    受dominicbarnes / form-serialize的大力启发,但可与npm一起使用,并且本身不包含transform功能。 用法 serialize ( form ) == // {username: 'user1', password: 'my password'} < input name =' username ...

    Scala:Applied Machine Learning

    Work with unstructured data and serialize it using Kryo, Protobuf, Avro, and AvroParquet Construct reliable and robust data pipelines and manage data in a data-driven enterprise Implement scalable ...

    PyPI 官网下载 | monero-serialize-2.0.3.tar.gz

    资源来自pypi官网。 资源全名:monero-serialize-2.0.3.tar.gz

    13.form-serialize插件使用.html做一下等级任务

    13.form-serialize插件使用.html做一下等级任务

    mfc_Serialize.zip_CplusSerializeM_MFC Serialize socket_MFC seria

    这个主题的"mfc_Serialize.zip"包含的三个示例程序——PHN、Memo和ARCH,旨在演示如何使用MFC的串行化机制来处理C++对象。 **1. MFC 串行化基础** MFC的串行化机制是通过继承`CObject`类并重载`serialize`函数实现...

    jquery.serialize.js

    自己写的一个jquery复杂表单序列化工具

    serialize binary tree.pdf

    ### 实现具有超过两个子节点的树 在计算机科学领域,树是一种常用的数据结构,用于表示具有层次关系的数据集合。通常我们讨论的二叉树每个节点最多有两个子节点:左子节点和右子节点。然而,在某些情况下,我们需要...

    dataset-serialize-master.zip

    原工程地址:https://github.com/viniciussanchez/dataset-serialize 由于使用的了高版本的类信息所以无法在Delphi7中无法使用,这里将其他修改为使用superobject来做JSON部分的处理

    form-serialize-and-calculate.html

    form-serialize-and-calculate.html

    Jquery serialize() 中文乱码及解决方法

    Jquery serialize() 中文乱码及解决方法 Jquery serialize() 方法在处理中文数据时,经常会出现乱码问题。这种问题的原因是 serialize() 方法自动调用了 encodeURIComponent 方法将数据编码了,从而导致中文乱码。...

    Dubbo服务框架-其他

    如果用户仍然想使用它,请设置dubbo.security.serialize.generic.native-java-enable为true环境。 3. 序列化块列表 中引入了嵌入式序列化块列表dubbo-common/src/main/resources/security/serialize.blockedlist。 ...

    Professional.MFC.with.VC6

    Serialize() Beyond Active Documents Translating Business Rules What if I'm Not in Big Business, Smart Guy? Automation Prerequisites for Automation Differences from Embedding Implementing ...

    ng.serialize:Angular ng.serialize

    2. **JSON 序列化**:除了查询字符串,还可以将整个对象转换为 JSON 字符串,使用 `ng_serialize.objectToJson` 函数。 3. **支持嵌套表单**:如果表单包含嵌套的对象或数组,`ng.serialize` 也能正确处理,保持数据...

Global site tag (gtag.js) - Google Analytics