我正在尝试将一些Java代码移植到Scala。该代码使用带有称为type的成员的注释,但这是scala中的关键字。有没有办法解决Scala中这个有效的Java成员?

这是Java代码

@Component(
        name = "RestProcessorImpl",
        type = mediation // Compile error
        )
public class RestProcessorImpl {
 // impl
}

这部分代码在scala中是相同的,只是type是关键字,因此无法编译。有没有一种方法可以逃避type关键字?

这也是带有type成员的Java类的问题

HasType.java
package spike1;

public class HasType {
    public String type() {
        return "the type";
    }
}

UseType.scala
class UseType {
    def hasType = new HasType
    hasType.type() // Compile error
}

最佳答案

您可以使用反引号来避开非法标识符:

val type = 1    // error
val `type` = 1  // fine

因此,使用您的代码,您可以执行以下操作:
val hasType = new HasType
hasType.`type`()   // no error

07-24 13:17