title: kotlin, what is @param used for before the annotation type
body: <p>In java class with annotation:</p>
  <pre><code>public final class Info {
  
      private Info() {
  
      }
  
      public static class InfoAction {
  
          public static final String OPEN = &quot;open&quot;;
          public static final String VIEW_ALL = &quot;view_all&quot;;
  
          @Retention(RetentionPolicy.SOURCE)
          @StringDef({OPEN, VIEW_ALL})
          public @interface Action {
          }
  
          public String mAction;
  
          public InfoAction(@Action String action) {
              this.mAction = action;
          }
      }
  </code></pre>
  <p>IDE convert to kotlin:</p>
  <pre><code>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 = &quot;open&quot;
              const val VIEW_ALL = &quot;view_all&quot;
          }
      }
  }
  </code></pre>
  <p>it has <code>@param:Action</code>, but replace with <code>@Action</code> it works as well.</p>
  <p>what is this <code>@param</code> here for, and can the <code>@Action</code> be used?</p>