【问题标题】:Kotlin infix function shadows/hides member functionKotlin 中缀函数隐藏/隐藏成员函数
【发布时间】:2018-03-08 14:21:14
【问题描述】:

我只是想用 Kotlin 写一些例子。我所做的是创建一个 Jersey 应用程序,一切都很顺利,直到我尝试将 Main.java 类更改为 Main.kt

生成的Main.java类有这个方法;

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) 时,它会显示成员函数,但是当您运行/调试它时,它会添加已在 Tuples.kt 文件中定义的函数,该文件与kotlin-stdlib.

问题是,有没有办法调用成员函数?我尝试转义函数名等,但实际上没有任何效果。

谢谢!

【问题讨论】:

    标签: jersey kotlin jersey-2.0 kotlin-extension


    【解决方案1】:

    替换

    bind(UserService()).to(IUserService::class)
    

    bind(UserService()).to(IUserService::class.java)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      • 2020-08-24
      • 1970-01-01
      相关资源
      最近更新 更多