class SimpleClass (myInt: Int, myString: String) {
}
Что случилось со следующим?
val mySimple = new SimpleClass(1, "hi")
println(mySimple.myInt)
Ответ 1
Если вы хотите, чтобы параметры конструктора были доступны как поля класса, вы должны объявить их как vals или vars:
class SimpleClass (val myInt: Int, val myString: String) {
}
Ответ 2
Явный эквивалент вашего определения Scala:
public class SimpleClass {
public SimpleClass( int myInt, String myString ) {
}
}
Никаких чудес, это не сработает...
Эй, чувак, это ваш 17-й вопрос Scala, и вы все еще обеспокоены самими языками. Возможно, вам стоит заняться днем и прочитать часть учебника онлайн (или некоторую книгу), чтобы консолидировать ваши знания. Я могу предложить:
Для полного опыта POJO ™, включая равенство, hashCodes и разумную реализацию toString... Вам нужны классы case:
case class SimpleClass(myInt: Int, myString: String)
val mySimple = SimpleClass(1, "hi")
println(mySimple.myInt)
Параметры класса case автоматически преобразуются в vals. Вы можете явно сделать их vars, если хотите, но такого рода вещи, как правило, не одобряются в Scala, где предпочтительны неизменные объекты.
Ответ 4
Проблема заключается в том, что вы вызываете метод SimpleClass.myInt getter, но вы не определяете метод getter в любом месте. Вам нужно определить метод SimpleClass.myInt getter или еще лучше, получите Scala, чтобы автоматически определить его для вас:
class SimpleClass(val myInt: Int, myString: String) {}