2017-02-10 18 views
-1

私は、Pharmacyというクラスが3つのフィールドを持っています。クラス内でリストを作成すると、うまく動作します。しかし、クラス外のリストを作成しようとすると、「アプリケーションがパラメータを取らない」というエラー(IntelliJエラー)が表示されます。クラスを使用したスカラーリストの作成

私が間違っていると思われるアイデアはありますか?

// This part gets an error 
def getDrugInfo(str: String):Box[List[Pharmacy]] = { 
    val pharmacies = List (
     Pharmacy("aaa", "bbb", "ccc"), 
     Pharmacy("aaa", "bbb", "ccc"), 
     Pharmacy("aaa", "bbb", "ccc"), 
     Pharmacy("aaa", "bbb", "ccc"), 
     Pharmacy("aaa", "bbb", "ccc")) 
} 

// This part works fine 
object Pharmacy { 

case class Pharmacy(name: String, address: String, acceptsCard: String) 

val pharmacies = List(
    Pharmacy("aaa", "bbb", "ccc"), 
     Pharmacy("aaa", "bbb", "ccc"), 
     Pharmacy("aaa", "bbb", "ccc"), 
     Pharmacy("aaa", "bbb", "ccc"), 
     Pharmacy("aaa", "bbb", "ccc")) 
} 
+0

'getDrugInfo'メソッドの本文を投稿してください。 –

+0

全体の方法があります。コードボックスの外側に中括弧があります。 –

答えて

1

Pharmacyのケースクラスを薬局オブジェクトの中に宣言しました。それをトップレベルの宣言に移動します。そのまま

PharmacyはあなたがgetDruginfo内val ... = ...を使用Pharmacy.Pharmacy(...)

+0

それを自分のクラスに移動すると、それは機能しました。 –

0

を必要とするインナーケースクラスを取得するには、あなたが宣言したオブジェクトを参照します。 =はUnitを返す副作用呼び出しです。あなたが何を返すのか、それは必要な戻り値の型ではありません。

関連する問題