【问题标题】:Scala function that returns requested type返回请求类型的 Scala 函数
【发布时间】:2015-06-19 07:40:07
【问题描述】:

我有一个配置文件,其中包含(大部分)JSON 格式的多个属性

"SERVER_NAME": "FooServer",
"SERVER_PORT": [9999],
"DEBUG": "false",
"MAX_USERS": [1000],
"MAX_INSTANCES": [5]

我正在通过类型安全配置库加载。我有一个包装类,它有一个 get 函数,它根据名称返回属性。我希望能够打电话

Config.get("SERVER_NAME") 

并有一个字符串“FooServer”返回给我。或 int 或 boolean,具体取决于配置中的值类型。

我当前的get函数在这里:

val factory = ConfigFactory.load()

def get(configValue: String) : AnyRef = {
   val javaObject = factory.getAnyRef(configValue)
   //return something
}

遗憾的是无法编译。 getAnyRef 函数将其作为未包装的装箱 Java 对象返回任何配置值,以便处理来自配置文件的类型推断。我应该只对对象的类型进行匹配吗? get 函数的返回类型应该是什么? AnyRef 是我发现的最接近全包类型的东西。

我意识到 Scala 函数必须指定返回类型,但有什么办法可以摆脱我拥有的非常简单的语法吗?

【问题讨论】:

    标签: scala


    【解决方案1】:

    AnyAnyRef 有时会混淆,您可以使用 Any 代替,它应该可以编译。

    【讨论】:

      猜你喜欢
      • 2014-05-29
      • 2011-02-14
      • 1970-01-01
      • 2018-02-23
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 2015-12-14
      相关资源
      最近更新 更多