2013-02-09 10 views
6

У меня есть класс Kotlin, который имеет объект класса, например.Доступ к объекту класса Kotlin из Java

public class Foo { 
    public class object { 
     public val SomeValue : Int = 0 
    } 
} 

Если я использую этот класс на Java, как мне получить доступ к SomeValue внутри объекта класса? Если бы это был класс Java со статическим свойством, я бы просто использовал Foo.SomeValue - но я не могу этого сделать.

IntellIJ показывает, что я могу получить доступ к Foo.object.$instance, но $instance не имеет getSomeValue или что-то в этом роде. Если я пытаюсь использовать $ instance.SomeValue в любом случае, когда я построю сообщение об ошибке говорит:

SomeValue имеет частный доступ в Foo.object

Я использую Котлин 0.5.1.

+0

Вы также можете сделать ее '@ JvmStatic', позволяя ей получить доступ как статический член класса' Foo'. См. Полную документацию по взаимодействию с Java в Kotlin https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#static-methods-and-fields –

ответ

4

«Отсутствие» getSomeValue() является ошибкой в ​​среде IDE. Если вы используете его, он компилируется в порядке. Я создал проблему: http://youtrack.jetbrains.com/issue/KT-3337

Смежные вопросы