Tôi có một Scala lớp:Khởi tạo một lớp Scala từ Java, và sử dụng các thông số mặc định của các nhà xây dựng
class Foo(val x:String = "default X", val y:String = "default Y")
tôi muốn gọi nó từ Java, nhưng sử dụng các thông số mặc định
Passing null
không hoạt động (nó gán null
, như mong đợi)
new Foo(null,null); //both are instantiated as null
lừa này đã làm việc cho tôi, nhưng nó xấu xí, và tôi tự hỏi, nếu có một cách tốt hơn:
Scala
class Foo(val x:String = "default X", val y:String = "default Y") {
def this(x:Object) = this()
}
Java
new Foo(null); //no matter what I pass it should work
Tuy nhiên tôi sẽ muốn loại bỏ thủ thuật quá tải hàm tạo và sử dụng hàm tạo 0 param
Có thể không?