Tag: 摇摆

Kotlin @JvmStatic和意外覆盖伴侣对象

我正在使用kotlin处理Swing的外观和感觉。 为了创建一个UI,Swing需要有一个静态方法createUI具有以下签名: class ButtonUI: BasicButtonUI() { … companion object { @JvmStatic fun createUI(p0: JComponent): ComponentUI { … } } } 然后通过Swing代码中的反射来调用它: m = uiClass.getMethod("createUI", new Class[]{JComponent.class}); 不幸的是,上面的代码不能被kotlin编译器编译,因为: Error:(88, 9) Kotlin: Accidental override: The following declarations have the same JVM signature (createUI(Ljavax/swing/JComponent;)Ljavax/swing/plaf/ComponentUI;): fun createUI(c: JComponent): ComponentUI fun createUI(p0: JComponent!): ComponentUI! 有这种情况下的解决方法吗?