使用枚举保存共享变量值是否正确?
我正在命令行中接受参数-例如“ mongoUsername”,“ mongoPassword”,“ mongoDatabase”等参数-在许多不同的文件中,并且希望消除在指定参数名称时出错的可能性
我创建了一个对象,如下所示:
object CommonParams extends Enumeration {
val MONGO_USERNAME = "mongoUsername"
val MONGO_PASSWORD = "mongoPassword"
..
}
从命令行接受这些参数时,将使用CommonParams.MONGO_USERNAME而不是“ mongoUsername”来读取参数。此方法有效。我的问题是:
。
object CommonParams extends Enumeration {
val MONGO_USERNAME = Value("mongoUsername")
val MONGO_PASSWORD = Value("mongoPassword")
..
}
如果以这种方式声明CommonParams,则每次都必须使用CommonParams.MONGO_USERNAME.toString,而不是仅使用更冗长的CommonParams.MONGO_USERNAME。
我知道枚举可以代表一定的值,即“事物”。但是,我在对象属性中持有一个值。如果我使用第二种声明CommonParams的方式,将会有什么好处?
答案 0 :(得分:0)
在第一个版本中,您应该删除extends Enumeration
,因为您实际上并没有使用它。
第二个版本的好处就是CommonParams.Value
不是字符串,所以如果有接受CommonParams.Value
的方法,您不能无意间传递无效的字符串。而且,您可以获得类似CommonParams.values
的方法来列出所有值。