使用@switch优化Java枚举的Scala模式匹配

Der*_*rat 6 enums scala pattern-matching

我有以下问题:我们有一个共享的scala-java-project(只有编写java代码的成员),因此我们将java枚举用于一个目的.但是现在我想在这个枚举中在scala中执行模式匹配,并使用@switch对其进行优化,因为java开关实际上可以使用枚举.

但编译器只抱怨:

error: could not emit switch for @switch annotated match
(args.tileType: @switch) match {
Run Code Online (Sandbox Code Playgroud)

其中tiletype是包含其中一个枚举值的字段.如何解决代码可以优化?

Rex*_*err 2

你使用Java。

Scala 仅包含能够读取 Java 枚举所需的大约最低限度的内容。目前(直到 2.10)您无法在 Scala 中创建或优化使用它们。