10

我正在尝试使用 Kotlin,并且我有以下 Java 注释

@Target( { TYPE })
@Retention(RUNTIME)
public @interface View {
    String[] url() default "";
    Class<? extends Component> parent() default Component.class;
}

在Java代码中,它以下列方式使用

@View(url="/", parent=RootView.class)
public class FrontView extends Component {
}

这在 Kotlin 中是如何表达的?我试过了

[View(url=Array<String>("/"), parent=Class<RootView>)]
class FrontView : Component() {
}

但它不编译。我只收到类型不匹配错误。

Type mismatch.  
Required: jet.Array<jet.String?>?  
Found: jet.Array<T>

Type mismatch
Required: java.lang.Class<out net.contextfw.web.application.component.Component?>?
Found: java.lang.Class<T>
4

1 回答 1

8

我找到了解决方案。语法似乎是这样的:

[View(url=array("/"), parent=javaClass<RootView>())]
class FrontView() : Component() {
}
于 2012-07-25T11:25:59.440 回答