我看到了这个问题:Scala:班级公共静态决赛,也是如此:http://www.scala-lang.org/olg/old/old/node/9178,但我可以't使它起作用...
我想做的是等同于以下Java代码的Scala:
public class MyClass extends AnotherClass{
public static final String WSDL = MyConfig.getProp("...");
public static final String SERVICES = {new QName(MyConfig.getProp("..."))};
public MyClass(){
super(WSDL,SERVICES);
}
}
我根据我搜索的内容尝试的是:
class MyClass (wsdl: String, services: Array[QName])(implicit val config:MyConfigClass) extends AnotherClass(wsdl,services:_*){
val WSDL:String = config.getProp("...")
val SERVICES: Array[QName] = Array(new QName(config.getProp("...")))
def this() {
this(WSDL,SERVICES:_*)
}
}
但是Scala Ide告诉我WSDL,服务未知。此时宣布WSDL和服务不应该是Java myClass.wsdl访问的等效内容?
感谢您的任何解决方案,并提供任何使我更易于消化的解释...
scala没有static
。相反,您要做的就是将您要在Java中制作static
的所有内容,在班级的同伴中。
这是您的代码应该的样子:
class MyClass (wsdl: String, services: Array[QName])
extends AnotherClass(wsdl, services: _*) {
def this() {
this(MyClass.WSDL, MyClass.SERVICES)
}
}
object MyClass {
final val WSDL: String = "..."
final val SERVICES: Array[QName] = Array(new QName("..."))
}