Kotlin 中缀函数 shadows/hides 成员函数
Kotlin infix function shadows/hides member function
我只是想用 Kotlin 写一些例子。我所做的是创建一个 Jersey 应用程序,一切都很顺利,直到我尝试将 Main.java
class 更改为 Main.kt
.
生成的Main.java
class有这个方法;
public static HttpServer startServer() {
final ResourceConfig rc = new ResourceConfig()
.packages("com.kotlinexperiments")
.register(new AbstractBinder() {
@Override
protected void configure() {
bind(new UserService()).to(IUserService.class);
}
});
return GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc);
}
然后我尝试将其转换为 Kotlin 文件;
fun startServer(): HttpServer {
val resourceConfig = ResourceConfig()
.packages("com.kotlinexperiments")
.register(object: AbstractBinder() {
override fun configure() {
bind(UserService()).to(IUserService::class)
}
})
return GrizzlyHttpServerFactory.createHttpServer(URI.create(baseUri), resourceConfig)
}
问题是,当您输入 IDE 和 bind(someInstance).to(class)
时,它会显示成员函数,但是当您输入 run/debug 时,它会中缀已经定义的函数在 Tuples.kt
文件中,与 kotlin-stdlib
.
一起分发
问题是,有没有办法调用成员函数?我尝试转义函数名称等,但实际上没有任何效果。
谢谢!
替换
bind(UserService()).to(IUserService::class)
和
bind(UserService()).to(IUserService::class.java)
我只是想用 Kotlin 写一些例子。我所做的是创建一个 Jersey 应用程序,一切都很顺利,直到我尝试将 Main.java
class 更改为 Main.kt
.
生成的Main.java
class有这个方法;
public static HttpServer startServer() {
final ResourceConfig rc = new ResourceConfig()
.packages("com.kotlinexperiments")
.register(new AbstractBinder() {
@Override
protected void configure() {
bind(new UserService()).to(IUserService.class);
}
});
return GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc);
}
然后我尝试将其转换为 Kotlin 文件;
fun startServer(): HttpServer {
val resourceConfig = ResourceConfig()
.packages("com.kotlinexperiments")
.register(object: AbstractBinder() {
override fun configure() {
bind(UserService()).to(IUserService::class)
}
})
return GrizzlyHttpServerFactory.createHttpServer(URI.create(baseUri), resourceConfig)
}
问题是,当您输入 IDE 和 bind(someInstance).to(class)
时,它会显示成员函数,但是当您输入 run/debug 时,它会中缀已经定义的函数在 Tuples.kt
文件中,与 kotlin-stdlib
.
问题是,有没有办法调用成员函数?我尝试转义函数名称等,但实际上没有任何效果。
谢谢!
替换
bind(UserService()).to(IUserService::class)
和
bind(UserService()).to(IUserService::class.java)