【发布时间】:2010-12-09 00:34:45
【问题描述】:
我想实现类似于 scala 如何将 Map 定义为 both 预定义的 type 和 object 的东西。在Predef:
type Map[A, +B] = collection.immutable.Map[A, B]
val Map = collection.immutable.Map //object Map
但是,我想使用 Java enums(来自共享库)来执行此操作。例如,我会有一些全局别名:
type Country = my.bespoke.enum.Country
val Country = my.bespok.enum.Country //compile error: "object Country is not a value"
这样做的原因是我希望能够使用如下代码:
if (city.getCountry == Country.UNITED_KINGDOM) //or...
if (city.getCountry == UNITED_KINGDOM)
但是,在同时导入我的类型别名时这是不可能的。 注意:如果我没有声明预定义类型并导入它,这段代码就可以正常工作!我可以在这里使用一些语法来实现这一点吗?
【问题讨论】: