tôi đã đưa ra phương pháp tĩnhScala chuyển đổi ngầm không nhận được áp dụng trên mô hình lập luận Java
static void foo(Object... params)
trong lớp Java Bar và có kế hoạch để gọi nó như sau:
Bar.foo('x')
mà sẽ không công việc beacause phương thức mong đợi một ký tự Java và bằng cách nào đó, chuyển đổi ngầm hiện tại không được áp dụng.
Bar.foo('x' : Character)
Bar.foo(new Character('x'))
cả hai sẽ thực hiện thủ thuật nhưng dễ bị tổn thương. Đưa những cấu trúc đó vào một chuyển đổi tiềm ẩn
implicit def baz(c : Char) = c : Character
không hoạt động và tôi không hiểu tại sao. Vì vậy, câu hỏi của tôi: Vấn đề ở đây là gì? Có sửa chữa không?
Với Scala 2.11.1 Tôi thấy thông báo lỗi sau: mario @ tumbolia/tmp/test 1024% scalac * Foo.scala: 2: lỗi: loại kết quả của chuyển đổi tiềm ẩn phải cụ thể hơn so với AnyRef Bar.foo ('x') ^ một lỗi được tìm thấy –