是否可以这种方式声明全局变量?
如果我运行此代码段,我将遇到错误
object Test {
val value -> error on this line for declaration issue
def run() {
value = ...
}
def main(args: Array[String]) {
run()
}
提前感谢。
答案 0 :(得分:4)
理论上你可以使用 Trait 来做。 我不确定这是你需要的。
看起来像这样:
trait MyTestTrait {
val value: String
}
object MyTest extends MyTestTrait {
val value = "yo!"
def run = println(value)
}
答案 1 :(得分:1)
不,那是不可能的。你应该这样做:
object Test {
val value = ...
}
由于您的run()
函数不带参数,因此value
的内容也可以在没有它的情况下计算。
答案 2 :(得分:0)
您可以在 Scala 中添加 Java 类, 所以你可以创建一个类并将你的变量放在 static { } 方法中 并且您可以使用私有获取方法获取访问权限。
package com.test.config
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
public class ConfigurationManager {
private static String myLink;
public static String GetMyLink()
{
return myLink;
}
static {
Config config = ConfigFactory.load();
myLink = config.getString("com.test.myLink");
}
}