2017-02-10 46 views
-1

我有一个叫做Pharmacy的类,它有三个字段。如果我在课堂上创建一个列表,它就可以工作。但是,如果我尝试在类的外部创建列表,则会出现有关“应用程序不接受任何参数”的错误(IntelliJ错误)。使用类创建Scala列表

任何想法,我可能做错了什么?

// 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指你声明的对象,以获得内壳类,你需要Pharmacy.Pharmacy(...)

+0

把它移到它自己的类,它工作。 –

0

您使用的val ... = ...的getDruginfo内。 =是返回单位的副作用呼叫。那么你返回的Unit是不是所需的返回类型。