小编dim*_*eng的帖子

Kotlin @JvmStatic和伴随对象中的意外覆盖

我正在使用Kotlin制作Swing外观。为了创建UI,Swing需要具有createUI带有以下签名的静态方法:

class ButtonUI: BasicButtonUI() {
    ...
    companion object {
        @JvmStatic fun createUI(p0: JComponent): ComponentUI {
           ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在Swing代码中通过反射调用它:

m = uiClass.getMethod("createUI", new Class[]{JComponent.class});
Run Code Online (Sandbox Code Playgroud)

不幸的是,由于以下原因,上面的代码无法由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!
Run Code Online (Sandbox Code Playgroud)

有这种情况的解决方法吗?

swing kotlin

5
推荐指数
1
解决办法
556
查看次数

AngularDart ng-change

我有html:

<select ng-model="main.selectedReport" ng-change="main.selectReport()">
                            <option value="">Not selected</option>
                            <option ng-repeat="rep in main.reports" value="{{rep.value1}}">{{rep.value2}}</option>
                        </select>
Run Code Online (Sandbox Code Playgroud)

我的控制器是:

@NgController(selector: '[main-controller]', publishAs: 'main')
class MainController extends FCViewAbstractController {

  Map reports;
  Long selectedReport;

....

  selectReport() {
    print(selectedReport);
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么我在selectReport()中获得先前选择的值?例如:在第一次选择时,我得到了空值.

但是angularjs中的版本可以正常工作http://plnkr.co/edit/ILBBWfkRp9tegQZaGZ9u?p=preview

dart angular-dart

3
推荐指数
1
解决办法
2401
查看次数

标签 统计

angular-dart ×1

dart ×1

kotlin ×1

swing ×1