iai*_*ain 6 java scala scala-java-interop
我试图将一些Java代码移植到scala.代码使用带有成员调用的注释,type但这是scala中的关键字.有没有办法在scala中解决这个有效的java成员?
这是Java代码
@Component(
name = "RestProcessorImpl",
type = mediation // Compile error
)
public class RestProcessorImpl {
// impl
}
Run Code Online (Sandbox Code Playgroud)
这部分代码在scala中是相同的,除了它type是一个关键字,因此它不能编译.有没有办法逃避type关键字?
这也是带有type成员的java类的问题
HasType.java
package spike1;
public class HasType {
public String type() {
return "the type";
}
}
Run Code Online (Sandbox Code Playgroud)
UseType.scala
class UseType {
def hasType = new HasType
hasType.type() // Compile error
}
Run Code Online (Sandbox Code Playgroud)
dhg*_*dhg 15
您可以使用反引号来绕过非法标识符:
val type = 1 // error
val `type` = 1 // fine
Run Code Online (Sandbox Code Playgroud)
因此,使用您的代码,您可以这样做:
val hasType = new HasType
hasType.`type`() // no error
Run Code Online (Sandbox Code Playgroud)