所以我有一个名为Person
的简单类,这个类有几个字段:
class person {
val name:String
val abe:Int
def generateRandom(): Person {
// Here i want to generate Person and return
}
}
因为你可以看到我希望我的班级可以选择生成random
Person
,但我不想将任何参数传递给我的班级,我希望它是自动的。
那么如何在此Person
方法中创建新的generateRandom
对象并将其与name
和age
字段一起返回?
有任何建议如何实施吗?
答案 0 :(得分:1)
你使用val作为名称和年龄,所以没有别的办法 - 你必须在构造函数中设置。但是,您可以将构造函数设置为private并将generator方法移动到companion对象(因为它可以访问私有构造函数)。代码如下所示:
class Person private (val name: String, val age: Int)
object Person {
def generateRandom(): Person = {
val randomName = ...
val randomAge = ...
new Person(randomName, randomAge)
}
}
//new Person("asdas", 3) not possible
val person = Person.generateRandom()
println(person.name, person.age)
答案 1 :(得分:0)
我认为你需要在括号中加param: String = null
。伴随着if(param == null)
......
Scala default parameters and null
答案 2 :(得分:0)
看起来很简单。
只需从方法中返回新的Person对象,向Name和Age添加一些随机值。