2012-02-29 12 views
0

私はスカラ座の中に次のJavaコードを変換しようとしている:JavaのためのScala変換

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

これは、Java(フルコード:http://neuroph.sourceforge.net/image_recognition.html)で実行されます。

Scalaではどうなりますか?私は "(ImageRecognitionPlugin).nnet"ビットについて混乱しており、 "(ImageRecognitionPlugin)"をドロップすると次のエラーが発生します。

は:あなたは可変(VAR)または不変(val)で変数を作成しているかどうかを指定する必要がScalaで

+0

使用しているScalaコードは何ですか? –

+0

http://www.javatoscala.com/ –

答えて

4

「エラーオブジェクトImageRecognitionPluginは値ではありません」。また、代わりの.classのclassOfとのinstanceofを使用し、(キャスト)する必要があります。

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

これを試してみてください:

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

これを打破するのをしてみましょう:

val 

これを宣言します不変値。つまり、この値は常にこの特定のインスタンスを指します。代わりにvarを使用した場合、これは代わりに変数になります。

imageRecognition:ImageRecognitionPlugin 

これは、1)値の名前と2)そのタイプを示します。 Foo aFooの代わりに、Javaのように、ScalaはaFoo:Fooを使用します。

nnet.getPlugin(classOf[ImageRecognitionPlugin]) 

classOf [Foo]は、JavaのFoo.classに相当するScalaのクラスです。

+1

Javaで実際にキャストが必要な場合(たとえば、 'getPlugin'が' Object'を返す場合)、このコードは機能しません。 Chris Shainのように 'asInstanceOf'が必要です。 – Landei

+0

Ryan - asInstanceOfも必要でした – candleford

関連する問題