我正在尝试将一些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