Доступ к переменным экземпляра Scala из Java в Eclipse
825 просмотра
1 ответ
Я подозреваю, что мне не хватает чего-то очень элементарного, но я не могу получить доступ к полям Scala из кода Java:
package test;
class TestScala (myNumber : Int){
val myNum : Int = myNumber;
}
package test;
import test.TestScala;
public class TestJava {
public static void main(String[] args) {
TestScala t = new TestScala(2);
int x = t.myNum;
System.out.println(x);
}
}
Урожайность:
Исключение в потоке "main" java.lang.Error: Неразрешенная проблема компиляции: поле TestScala.myNum не отображается
Этот билет Ассембла касается темы, но мой маленький череп не может разобрать полезное решение:
Спасибо
Автор: Ephemiere Источник Размещён: 12.11.2019 09:47Ответы (1)
9 плюса
Решение
Доступ к полям Val осуществляется через методы с одинаковыми именами.
scalac -Xprint: typer покажет вам, что:
class TestScala extends java.lang.Object with ScalaObject {
<paramaccessor> private[this] val myNumber: Int = _;
def this(myNumber: Int): $iw.$iw.TestScala = {
TestScala.super.this();
()
};
private[this] val myNum: Int = TestScala.this.myNumber;
<stable> <accessor> def myNum: Int = TestScala.this.myNum
}
Так в Java int x = t.myNum();
работает.
Вопросы из категории :
- java В чем разница между int и Integer в Java и C #?
- java Как я могу определить IP моего маршрутизатора / шлюза в Java?
- java Каков наилучший способ проверки XML-файла по сравнению с XSD-файлом?
- java Как округлить результат целочисленного деления?
- java Преобразование списка <Integer> в список <String>
- java Почему я не могу объявить статические методы в интерфейсе?
- eclipse Как вы отлаживаете PHP-скрипты?
- eclipse Я не понимаю концепцию проектов и решений Visual Studio
- eclipse Как создать мидлеты J2ME для Nokia с помощью Eclipse
- eclipse Есть ли способ заставить работать Jadclipse с Eclipse 3.4?
- eclipse How to use Special Chars in Java/Eclipse
- eclipse Экран проблем Eclipse больше не отображает ошибки
- scala Есть ли реальный опыт использования программной транзакционной памяти?
- scala Преобразование коллекции Java в коллекцию Scala
- scala Что означает один апостроф в Scala?
- scala Самый масштабируемый веб-стек для высокопроизводительного приложения Flash / Flex / AIR?
- scala Разбиение макета Scala на инфиксном операторе
- scala Как мне обойти стирание типа на Scala? Или, почему я не могу получить параметр типа моих коллекций?