Java转换为Scala

时间:2012-02-29 05:21:05

标签: scala

我正在尝试将以下Java代码转换为Scala:

ImageRecognitionPlugin imageRecognition = (ImageRecognitionPlugin)nnet.getPlugin(ImageRecognitionPlugin.class)

它以Java格式运行(完整代码:http://neuroph.sourceforge.net/image_recognition.html)。

Scala会是什么?我对“(ImageRecognitionPlugin).nnet”位感到困惑,当我删除“(ImageRecognitionPlugin)”时出现以下错误。

“错误:对象ImageRecognitionPlugin不是值”

2 个答案:

答案 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。