Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
scala 2.11中POJO中的scala酸洗-真的很简单吗?_Scala_Scala Pickling - Fatal编程技术网

scala 2.11中POJO中的scala酸洗-真的很简单吗?

scala 2.11中POJO中的scala酸洗-真的很简单吗?,scala,scala-pickling,Scala,Scala Pickling,我尝试使用scala酸洗,因为在现场,它看起来很容易清洗。但是,我在这个简单的REPL中没有使用它: scala> import scala.pickling._ import scala.pickling._ scala> import scala.pickling.Defaults._ import scala.pickling.Defaults._ scala> import binary._ import binary._ scala> class Xpto

我尝试使用scala酸洗,因为在现场,它看起来很容易清洗。但是,我在这个简单的REPL中没有使用它:

scala> import scala.pickling._
import scala.pickling._

scala> import scala.pickling.Defaults._
import scala.pickling.Defaults._

scala> import binary._
import binary._

scala> class Xpto { var a = 0D; var b = 0 }
defined class Xpto

scala> val v = new Xpto { a = 1.23; b = 5 }
v: Xpto = $anon$1@636d2b03

scala> v.pickle
<console>:19: error: type mismatch;
 found   : v.type (with underlying type Xpto)
 required: ?{def pickle: ?}
Note that implicit conversions are not applicable because they are ambiguous:
 both method PickleOps in package pickling of type [T](picklee: T)pickling.PickleOps[T]
 and method pickleOps in trait Ops of type [T](picklee: T)scala.pickling.PickleOps[T]
 are possible conversion functions from v.type to ?{def pickle: ?}
          v.pickle
            ^
<console>:19: error: value pickle is not a member of Xpto
                  v.pickle
                    ^
"org.scala-lang.modules" %% "scala-pickling" % "0.10.1"

您确定这些是您在REPL中使用的仅导入吗?如上所述,上述错误是:

请注意,隐式转换不适用,因为它们不明确: 两种方法都在[T]型(pickle:T)酸洗的包装中进行酸洗。PickleOps[T] 和方法[T](pickle:T)scala.pickling.pickleOps[T]型性状操作中的pickleOps 是从v.type到{def pickle:?}的可能转换函数

因此,至少有两个隐式转换,分别来自
scala.pickling.PickleOps[T]()
scala.pickling.Ops.PickleOps
。这很奇怪,因为它不是隐式类

对我来说,它在一个新的REPL中工作
(Scala版本2.11.7 Java 1.7.079)

scala> import scala.pickling._
scala> import scala.pickling.Defaults._
scala> import binary._
scala> class Xpto { var a = 0D; var b = 0 }
defined class Xpto
scala> val v = new Xpto { a = 1.23; b = 5 }
v: Xpto = cmd5$$anonfun$1$$anon$1@244da0ed
scala> v.pickle
res6: pickleFormat.PickleType = BinaryPickle([0,0,0,23,99,109,100,53,36,36,97,110,111,110,102,117,110,36,49,36,36,97,110,111,110,36,49,63,-13,-82,20,122,-31,71,-82,0,0,0,5])

您确定这些是您在REPL中使用的仅导入吗?如上所述,上述错误是:

请注意,隐式转换不适用,因为它们不明确: 两种方法都在[T]型(pickle:T)酸洗的包装中进行酸洗。PickleOps[T] 和方法[T](pickle:T)scala.pickling.pickleOps[T]型性状操作中的pickleOps 是从v.type到{def pickle:?}的可能转换函数

因此,至少有两个隐式转换,分别来自
scala.pickling.PickleOps[T]()
scala.pickling.Ops.PickleOps
。这很奇怪,因为它不是隐式类

对我来说,它在一个新的REPL中工作
(Scala版本2.11.7 Java 1.7.079)

scala> import scala.pickling._
scala> import scala.pickling.Defaults._
scala> import binary._
scala> class Xpto { var a = 0D; var b = 0 }
defined class Xpto
scala> val v = new Xpto { a = 1.23; b = 5 }
v: Xpto = cmd5$$anonfun$1$$anon$1@244da0ed
scala> v.pickle
res6: pickleFormat.PickleType = BinaryPickle([0,0,0,23,99,109,100,53,36,36,97,110,111,110,102,117,110,36,49,36,36,97,110,111,110,36,49,63,-13,-82,20,122,-31,71,-82,0,0,0,5])
太好了!它跑了

我启动了一个全新的scala控制台

我在build.sbt中使用了对scala.pickling的引用:

"org.scala-lang" %% "scala-pickling" % "0.10.1"
现在我正在使用

"org.scala-lang.modules" %% "scala-pickling" % "0.10.1"
我也在使用Scala 2.11.6

现在它工作得很完美,而且真的很简单

scala> import scala.pickling._
import scala.pickling._

scala> import scala.pickling.binary._
import scala.pickling.binary._

scala> import scala.pickling.Defaults._
import scala.pickling.Defaults._

scala> class Xpto { var a = 0D; var b = 0; }
defined class Xpto

scala> val v = new Xpto { a = 1.23; b = 4; }
v: Xpto = $anon$1@1e7bd4df

scala> v.pickle
res0: pickling.binary.pickleFormat.PickleType = BinaryPickle([0,0,0,52,46,108,105,110,101,55,46,46,114,101,97,100,46,46,105,119,46,46,105,119,46,46,105,119,46,46,105,119,46,46,105,119,46,46,105,119,46,46,105,119,46,46,105,119,46,46,97,110,111,110,46,49,63,-13,-82,20,122,-31,71,-82,0,0,0,4])
我现在不知道我的其他库引用是否生成了那个模棱两可的引用。我在build.sbt中的引用是:

libraryDependencies ++= Seq(
  "log4j" % "log4j" % "1.2.17",
  "javax.transaction" % "jta" % "1.1",
  "com.typesafe.akka" %% "akka-actor" % "2.3.10",
  "com.typesafe.akka" %% "akka-testkit" % "2.3.10",
  "org.scalatest" %% "scalatest" % "3.0.0-SNAP4" % "test",
  "org.apache.commons" % "commons-io" % "1.3.2",
  "com.typesafe.akka" %% "akka-slf4j" % "2.3.11",
  "ch.qos.logback" % "logback-classic" % "1.0.9",
  "org.scala-lang.modules" %% "scala-pickling" % "0.10.1"
)
感谢马库斯。

太好了!它跑了

我启动了一个全新的scala控制台

我在build.sbt中使用了对scala.pickling的引用:

"org.scala-lang" %% "scala-pickling" % "0.10.1"
现在我正在使用

"org.scala-lang.modules" %% "scala-pickling" % "0.10.1"
我也在使用Scala 2.11.6

现在它工作得很完美,而且真的很简单

scala> import scala.pickling._
import scala.pickling._

scala> import scala.pickling.binary._
import scala.pickling.binary._

scala> import scala.pickling.Defaults._
import scala.pickling.Defaults._

scala> class Xpto { var a = 0D; var b = 0; }
defined class Xpto

scala> val v = new Xpto { a = 1.23; b = 4; }
v: Xpto = $anon$1@1e7bd4df

scala> v.pickle
res0: pickling.binary.pickleFormat.PickleType = BinaryPickle([0,0,0,52,46,108,105,110,101,55,46,46,114,101,97,100,46,46,105,119,46,46,105,119,46,46,105,119,46,46,105,119,46,46,105,119,46,46,105,119,46,46,105,119,46,46,105,119,46,46,97,110,111,110,46,49,63,-13,-82,20,122,-31,71,-82,0,0,0,4])
我现在不知道我的其他库引用是否生成了那个模棱两可的引用。我在build.sbt中的引用是:

libraryDependencies ++= Seq(
  "log4j" % "log4j" % "1.2.17",
  "javax.transaction" % "jta" % "1.1",
  "com.typesafe.akka" %% "akka-actor" % "2.3.10",
  "com.typesafe.akka" %% "akka-testkit" % "2.3.10",
  "org.scalatest" %% "scalatest" % "3.0.0-SNAP4" % "test",
  "org.apache.commons" % "commons-io" % "1.3.2",
  "com.typesafe.akka" %% "akka-slf4j" % "2.3.11",
  "ch.qos.logback" % "logback-classic" % "1.0.9",
  "org.scala-lang.modules" %% "scala-pickling" % "0.10.1"
)
多亏了马库斯