Pull to refresh

Comments 1

Сложности с компаньоном

Для того, чтобы в Java константы виделись так же как и раньше, есть аннотация @JvmStatic. Работает тоже только для примитивов и String, для остальных создаётся getter.
    companion object {
        @JvmStatic val CONST1: String = "Const1"
        const val CONST2: String = "Const2"
    }


Но при этом константа становится приватной и доступна только из того же пакета. Для внешнего доступа создаётся тот же getter, что и обычно

   @NotNull
   private static final String CONST1 = "Const1";
   @NotNull
   public static final String CONST2 = "Const2";

   public static final class Companion {
      /** @deprecated */
      // $FF: synthetic method
      @JvmStatic
      public static void CONST1$annotations() {
      }

      @NotNull
      public final String getCONST1() {
         return Test.CONST1;
      }

      private Companion() {
      }

      // $FF: synthetic method
      public Companion(DefaultConstructorMarker $constructor_marker) {
         this();
      }
   }

Sign up to leave a comment.