Преобразование Java в Scala - PullRequest
       2

Преобразование Java в Scala

0 голосов
/ 29 февраля 2012

Я пытаюсь преобразовать следующий код Java в Scala:

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

Он работает на Java (полный код: http://neuroph.sourceforge.net/image_recognition.html).

Что бы это было в Scala? IЯ запутался в бите "(ImageRecognitionPlugin).nnet", и я получаю следующую ошибку, когда я сбрасываю ошибку "(ImageRecognitionPlugin)".

": объект ImageRecognitionPlugin не является значением"

Ответы [ 2 ]

4 голосов
/ 29 февраля 2012

В scala вам нужно указать, будете ли вы создавать переменную (var) или неизменяемую (val). Вам также нужно использовать classOf и instanceOf вместо .class и (cast):

val imageRecognition = nnet.getPlugin(classOf[ImageRecognitionPlugin]).asInstanceOf[ImageRecognitionPlugin]
1 голос
/ 29 февраля 2012

Попробуйте это:

val imageRecognition:ImageRecognitionPlugin = 
    nnet.getPlugin(classOf[ImageRecognitionPlugin])

Давайте разберемся с этим:

val

Это объявляет неизменное значение. Это означает, что это значение всегда будет указывать на этот конкретный экземпляр. Если бы вместо этого вы использовали переменную, это была бы переменная.

imageRecognition:ImageRecognitionPlugin

Это говорит нам 1) имя значения и 2) его тип. Вместо Foo aFoo, как в Java, Scala использует aFoo: Foo.

nnet.getPlugin(classOf[ImageRecognitionPlugin])

classOf [Foo] является эквивалентом Scala для Foo.class в Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...