2011-10-05 30 views
11

Cho loại bí danh type Cal = java.util.Calendar cách truy cập staticgetInstance phương pháp này? Tôi đã thử các sau đây trong Scala REPL:Cách truy cập một phương thức tĩnh Java từ Scala với bí danh loại cho lớp đó nằm trong

scala> type Cal = java.util.Calendar 
defined type alias Cal 
scala> Cal.getInstance 
<console>:8: error: not found: value Cal 
      Cal.getInstance 
     ^
scala> val Cal = java.util.Calendar 
<console>:7: error: object Calendar is not a value 
    val Cal = java.util.Calendar 
        ^

import java.util.{Calendar => Cal} tiếp theo import Cal._ thực sự đặt cược tốt nhất của tôi?

+2

Để đảm bảo tính nhất quán và có loại bí danh thay thế hoàn toàn loại tôi nghĩ Scala cũng nên thực hiện các phương pháp tĩnh có thể truy cập thông qua nó. –

Trả lời

12

Bạn không thể.

Có, import java.util.{Calendar => Cal} thực sự là lựa chọn tốt nhất của bạn.

Về mặt khái niệm, Scala object thành viên tương tự như thành viên tĩnh của các lớp Java. Điều này có thể gợi ý những điều sau đây sẽ làm việc, nhưng nó không phải vì thực tế không có các đối tượng đơn lẻ nào có sẵn cho các lớp Java.

scala> val Cal = java.util.Calendar 
<console>:13: error: object Calendar is not a value 
     val Cal = java.util.Calendar 
         ^
+0

Tôi đoán bạn cũng có thể chỉ cần đi trước và quấn toàn bộ điều theo cách thủ công trong một 'đối tượng Cal'. Người ta có thể tranh luận giải pháp nào là ** đặt cược tốt nhất **. – agilesteel

Các vấn đề liên quan