繁体   English   中英

在 Scala 中声明一个全局变量

[英]Declare a global variable in scala

是否可以以这种方式声明全局变量?

如果我运行这个片段,我会遇到一个错误

object Test {
  val value -> error on this line for declaration issue
  def run() {
    value  = ... 
  }
def main(args: Array[String]) {
    run()
  }

提前致谢。

理论上你可以使用Trait 来做到这一点。 我不确定这是你需要的。

它看起来像这样:

trait MyTestTrait {
  val value: String
}

object MyTest extends MyTestTrait {
  val value = "yo!"
  def run = println(value)
}

不,那不可能。 你应该做这个:

object Test {
  val value = ...
}

由于您的run()函数不接受参数,因此也可以在没有参数的情况下计算value的内容。

您可以在 Scala 中添加 Java 类,这样您就可以创建一个类并将变量放入 static {} 方法中,并且您可以使用私有 get 方法进行访问。

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");
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM