【发布时间】: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