0
我看到了这个问题:Scala: public static final in a class而这其中,太:http://www.scala-lang.org/old/node/9178但我不能让它工作...如何在Scala构造器中使用“static final constant”?
我想要做的就是斯卡拉相当于Java代码的:
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和SERVICES不应该等同于Java MyClass.WSDL访问?
感谢您的任何解决办法,对于任何解释,使我的Scala更易消化...
谢谢,但在这种情况下,我有一个问题...... WSDL不只是一个硬编码字符串,但像config.getProp东西(”一个属性“),其中config是一个在我的App对象中初始化的隐式值。由于我看到的对象不能用任何参数初始化,我怎样才能将我的配置值传递给伴随对象?我将编辑我的问题... – Cheloute
@Cheloute你如何在Java中使用静态最终变量来做到这一点?然后你也不能依赖传递给你的构造函数的东西。 –
@ Jasper-M你是对的,我的问题是现在我的配置实现..好吧,这个解决方案是好的,所以!谢谢! – Cheloute