首页 > 解决方案 > java枚举的scala类型别名不起作用?

问题描述

java类的Scala类型别名工作正常,即

type JavaDate = org.joda.time.LocalDate

val date = new JavaDate(2019, 6, 20)
println(date)

但是 java 枚举的类型别名不起作用?

val m1 = java.time.Month.JANUARY
println(m1)

type JavaMonth = java.time.Month

val m2 = JavaMonth.FEBRUARY
println(m2)

错误:未找到:值 JavaMonth:val m2 = JavaMonth.FEBRUARY

如何使用 java 枚举的别名?谢谢!

标签: scala

解决方案


考虑使用导入重命名而不是像这样的类型别名:

import java.time.{Month => JavaMonth}
val m2 = JavaMonth.FEBRUARY

类型别名可能更适合简化更复杂的类型,例如

type Response = Future[Either[Error, Int]]

推荐阅读