2016-11-26 9 views
0

を実行するためのScalaファイルを取得できません:は、私は2つの質問持っ

1)私は、REPLを使用してスカラまたは印刷し、それをscalacを呼び出すことによって、私のいずれか表示されるように、このプログラムで一覧メニューを取得しようとしていますこれはパッケージを使用しているので少し混乱しています。私は

scalac Fruits.scala 
scala bobsdelight\Fruits 

を使用して、これを実行しようとしたが、誰かが

2素晴らしいことだ、このスクリプトを実行する方法を私に示してくださいすることができた場合、私はjava.lang.NoClassDefFoundError: bobsdelights\Fruits wrong name: bobsdelights/Fruits)

を得る)私はまた、作成しようとしています最初のファイルをロードすることにより、REPLでnew Fruits.Appleを呼び出すことによって、新しいAppleのオブジェクトが、私は得る:

error: type Apple is not a member of object Fruits 
new Fruits.Apple`` 

この例では、Scalaでプログラミングしています 本。

package bobsdelights 

abstract class Fruit(
    val name: String, 
    val color: String 
) 

object Fruits { 
    object Apple extends Fruit("apple", "red") 
    object Orange extends Fruit("orange", "orange") 
    object Pear extends Fruit("pear", "yellowish") 
    val menu = List(Apple, Orange, Pear) 
} 
+0

Fruits.scalaの全コンテンツを削除できますか? – Pavel

+0

それはすべてです。 – zam

+0

実際のクラス定義のフルーツを作成します。 SingeltonはFruits $などの異なるクラスを持っています。 – Pavel

答えて

1

REPL例:実行可能なアプリケーションのための

$ scala bobsdelights.Fruits 
java.lang.NoSuchMethodException: bobsdelights.Fruits.main([Ljava.lang.String;) 

イディオム:

object Fruits extends App { 
    object Apple extends Fruit("apple", "red") 
    object Orange extends Fruit("orange", "orange") 
    object Pear extends Fruit("pear", "yellowish") 
    val menu = List(Apple, Orange, Pear) 

    println(menu) 
} 

$ scala 
Welcome to Scala 2.12.0 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_111). 
Type in expressions for evaluation. Or try :help. 

scala> :pa bobsdelight.scala 
Pasting file bobsdelight.scala... 

scala> Fruits.menu 
<console>:12: error: not found: value Fruits 
     Fruits.menu 
    ^

scala> import bobsdelight._ 
<console>:11: error: not found: value bobsdelight 
     import bobsdelight._ 
      ^

scala> import bobsdelights._ 
import bobsdelights._ 

scala> Fruits.menu 
res1: List[bobsdelights.Fruit] = List([email protected], [email protected], [email protected]) 

あなたはなしmainメソッドを持つ "ファイル名を指定して実行" クラスにしようとした場合および

$ scalac bobsdelight.scala && scala bobsdelights.Fruits 
List([email protected], [email protected], [email protected]) 
関連する問題