假设我有以下内容
class SimpleClass (myInt: Int, myString: String) {
}
Run Code Online (Sandbox Code Playgroud)
以下是什么问题?
val mySimple = new SimpleClass(1, "hi")
println(mySimple.myInt)
Run Code Online (Sandbox Code Playgroud)
Kim*_*bel 28
如果希望构造函数参数作为类的字段可用,则必须将它们声明为val或vars:
class SimpleClass (val myInt: Int, val myString: String) {
}
Run Code Online (Sandbox Code Playgroud)
par*_*tic 20
您的Scala定义的Java等价物是:
public class SimpleClass {
public SimpleClass( int myInt, String myString ) {
}
}
Run Code Online (Sandbox Code Playgroud)
没有奇迹它不起作用......
嘿老兄,这是你的第17个scala问题,你仍然对语言的基础知识感到困扰.也许你应该花一个下午阅读一些在线教程(或一些书)来巩固你的知识.我可以建议:
Kev*_*ght 16
对于完整的POJO体验™,包括相等,hashCodes和理智的实现toString
......你需要案例类:
case class SimpleClass(myInt: Int, myString: String)
val mySimple = SimpleClass(1, "hi")
println(mySimple.myInt)
Run Code Online (Sandbox Code Playgroud)
案例类的参数自动变为val.如果你愿意,你可以明确地将它们变成vars,但是这种事情在Scala中通常是不受欢迎的 - 其中不可变对象受到青睐.