kotlin,注解类型前的@param是做什么用的

kotlin, what is @param used for before the annotation type

在 java class 中带有注释:

public final class Info {

    private Info() {

    }

    public static class InfoAction {

        public static final String OPEN = "open";
        public static final String VIEW_ALL = "view_all";

        @Retention(RetentionPolicy.SOURCE)
        @StringDef({OPEN, VIEW_ALL})
        public @interface Action {
        }

        public String mAction;

        public InfoAction(@Action String action) {
            this.mAction = action;
        }
    }

IDE 转换为科特林:

class Info private constructor() {
    class InfoAction(@param:Action var infoAction: String) {
        @kotlin.annotation.Retention(AnnotationRetention.SOURCE)
        @StringDef(OPEN, VIEW_ALL)
        annotation class Action

        companion object {
            const val OPEN = "open"
            const val VIEW_ALL = "view_all"
        }
    }
}

它有 @param:Action,但用 @Action 替换它也可以。

这里的@param是做什么用的,@Action可以用吗?

@param 用于构造函数参数

详情:

https://kotlinlang.org/docs/annotations.html#annotation-use-site-targets