Có rất nhiều bài viết về cách gọi Java varargs từ mã Scala, nhưng điều duy nhất tôi có thể tìm thấy vòng đối diện là câu hỏi này: Using scala vararg methods in java, mà không có bất kỳ ví dụ cụ thể nào.Làm thế nào để sử dụng Scala varargs từ mã Java
Tôi đang cố gắng sử dụng scala.Console
từ một số mã Java, vì lý do mà java.io.Console
không hoạt động trong Eclipse, trong khi đó Scala thực hiện. Nhưng tôi không thể có được phương pháp
def readLine (text: String, args: Any*): String
để làm việc bởi vì nó dường như được mong đợi một scala.collection.Seq[Any]
cho đối số thứ hai, và tôi không thấy làm thế nào để tạo ra một Seq
trong Java. Làm thế nào tôi có thể làm việc xung quanh điều này?
Những điều tôi đã cố gắng:
1) Sử dụng rỗng
// Java
String s = scala.Console.readLine("Enter text: ", null);
- được thưởng bằng một NullPointerException
.
2) Thay thế null
với scala.collection.Seq.empty()
, nhưng báo cáo javac tất cả các loại lỗi như Seq
không có một phương pháp empty
.
3) Sử dụng đối tượng Nil
trong đối tượng gói scala.collection.immutable
, nhưng cú pháp được đề xuất here, sẽ là scala.collection.immutable.package$Nil$.MODULE$
nhưng không thể giải quyết được.
Tất nhiên tôi chỉ có thể sử dụng phương pháp readLine()
không sử dụng varargs, nhưng điều đó sẽ quá dễ dàng.
Tôi đã chỉnh sửa câu trả lời. – axel22
Tuyệt vời, hoạt động. Cả hai vẫn hiển thị lỗi trong Eclipse, nhưng chúng thực sự biên dịch. Điều này có thể là một phần của vấn đề. –