Java来斯卡拉转换
我想下面的Java代码转换为斯卡拉:Java来斯卡拉转换
ImageRecognitionPlugin imageRecognition = (ImageRecognitionPlugin)nnet.getPlugin(ImageRecognitionPlugin.class)
它在运行的Java(全码:http://neuroph.sourceforge.net/image_recognition.html)。
斯卡拉会是什么?我对“(ImageRecognitionPlugin).nnet
”位感到困惑,当我放下“(ImageRecognitionPlugin)
”时,出现以下错误。
“错误:对象ImageRecognitionPlugin不是值”
在Scala中,你需要指定你是否创建一个可变(VAR)或不变(VAL)变量。你还需要使用classOf和}这种替代的.class和(投):
val imageRecognition = nnet.getPlugin(classOf[ImageRecognitionPlugin]).asInstanceOf[ImageRecognitionPlugin]
试试这个:
val imageRecognition:ImageRecognitionPlugin =
nnet.getPlugin(classOf[ImageRecognitionPlugin])
让我们打破这:
val
此声明的不可变值。这意味着这个值将始终指向这个特定的实例。如果你使用了一个var,那么这将是一个变量。
imageRecognition:ImageRecognitionPlugin
这告诉我们1)值的名称和2)它的类型。与Java中的Foo aFoo相比,Scala使用aFoo:Foo。
nnet.getPlugin(classOf[ImageRecognitionPlugin])
classOf [Foo]是Scala在Java中等价于Foo.class的。
如果在Java中真正需要强制转换(例如'getPlugin'返回'Object'),则此代码将不起作用。然后你需要Chris Shain所示的'asInstanceOf'。 – Landei 2012-02-29 12:32:46
谢谢瑞恩 - asInstanceOf也是必需的 – candleford 2012-02-29 22:38:20
什么是您正在使用的Scala代码? – 2012-02-29 17:58:14
http://www.javatoscala.com/ – 2014-05-21 11:42:50