假设我有一个案例类,其成员类型是我不能或想要修改的 Scala/Java,并且 uPickle 默认写入器/读取器不支持。有没有办法说 upickle 如何管理它?为了更清楚,让我们举个例子。
假设我有这些课程:
case class MyClass1 (a:BigInteger, b:BigInteger, c:Int, d:String)
case class MyClass2 (a:BigInteger, b:BigInteger, d:String)
(我知道 uPickle 可以管理 BigInt,但假设我必须使用 java.math.BigInteger 并复杂化我想使用十六进制表示而不是十进制。(所以 nb.toString(16) 转换为十六进制,并且适当的构造函数相反)
有没有办法告诉 uPickle 读者和作者如何管理 BigInteger,以便每次发生 BigInteger 时都会自动使用它?在某种程度上,我不必为我的每个类(MyClass1 和 MyClass2)编写特定的代码。
uPickle 文档仅涉及由开发人员控制的类的“自定义 Pickler”。这显然不是 java.math.BigInteger 的情况。最直接的方法是我想定义一个自定义读取器/写入器来扩展 uPickle 提供的默认值?除非可以提供一些隐式转换。但我不知道该怎么做,也不知道它是否可能。