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 に答える