我正在尝试将以下Java代码转换为Scala:
ImageRecognitionPlugin imageRecognition = (ImageRecognitionPlugin)nnet.getPlugin(ImageRecognitionPlugin.class)
它以Java格式运行(完整代码:http://neuroph.sourceforge.net/image_recognition.html)。
Scala会是什么?我对“(ImageRecognitionPlugin).nnet
”位感到困惑,当我删除“(ImageRecognitionPlugin)
”时出现以下错误。
“错误:对象ImageRecognitionPlugin不是值”
答案 0 :(得分:4)
在scala中,您需要指定是创建可变(var)还是不可变(val)变量。您还需要使用classOf和instanceOf而不是.class和(cast):
val imageRecognition = nnet.getPlugin(classOf[ImageRecognitionPlugin]).asInstanceOf[ImageRecognitionPlugin]
答案 1 :(得分:1)
试试这个:
val imageRecognition:ImageRecognitionPlugin =
nnet.getPlugin(classOf[ImageRecognitionPlugin])
让我们打破这个:
val
这声明了不可变的值。这意味着该值将始终指向此特定实例。如果您使用var而不是变量。
imageRecognition:ImageRecognitionPlugin
这告诉我们1)值的名称和2)它的类型。 Scala使用aFoo:Foo。而不是像Java一样使用Foo aFoo。
nnet.getPlugin(classOf[ImageRecognitionPlugin])
classOf [Foo]是Scala相当于Java中的Foo.class。