我有一个配置文件,其中包含(主要)JSON格式的几个属性
"SERVER_NAME": "FooServer",
"SERVER_PORT": [9999],
"DEBUG": "false",
"MAX_USERS": [1000],
"MAX_INSTANCES": [5]
我通过typesafe配置库加载。我有一个包装类,它有一个get函数,它根据名称返回属性。我希望能够致电
Config.get("SERVER_NAME")
并拥有一个String" FooServer"回到我身边。或者是int或boolean,具体取决于配置中的值类型。
我目前的获取功能在这里:
val factory = ConfigFactory.load()
def get(configValue: String) : AnyRef = {
val javaObject = factory.getAnyRef(configValue)
//return something
}
遗憾的是没有编译。 getAnyRef函数返回它作为未包装的盒装Java对象的任何配置值,以便从配置文件处理类型推断。我应该只对对象的类型进行匹配吗? get函数的返回类型应该是什么? AnyRef是我发现的最全面的全包式。
我意识到Scala函数必须指定返回类型,但是我有什么方法可以使用我真正简单的语法来解决这个问题吗?
答案 0 :(得分:1)
Any
和AnyRef
有时混淆,您可以使用Any
代替它,它应该编译。