所以情况就是这样.我想像这样定义一个case类:
case class A(val s: String)
Run Code Online (Sandbox Code Playgroud)
我想定义一个对象,以确保在创建类的实例时,'s'的值始终为大写,如下所示:
object A {
def apply(s: String) = new A(s.toUpperCase)
}
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,因为Scala抱怨apply(s:String)方法定义了两次.我理解case类语法会自动为我定义它,但是我不能用另一种方法来实现它吗?我想坚持使用case类,因为我想将它用于模式匹配.