2011-07-20 24 views
6

Java RMI -Remote Method Invocation- là Java to Java only.Java RMI với Scala, điều này có khả thi không?

Trên trang web Scala Tôi đọc mà sự tích hợp với Java là liền mạch và rằng:

chương trình Scala chạy trên máy ảo Java, là mã byte tương thích với Java, do đó bạn có thể tận dụng đầy đủ các thư viện Java hiện hoặc mã ứng dụng hiện tại. Bạn có thể gọi Scala từ Java và bạn có thể gọi Java từ Scala, tích hợp liền mạch.

Điều này có nghĩa là tôi có thể sử dụng Java thành Scala RMI thành công không?

Có ai thử nghiệm lần đầu này không?

EDIT:

Bất kỳ gotchas biết hoặc phát hiện ??

Trả lời

5

Có, đây là số link to a message thread where it looks like somebody's done it. Nó nói:

Có thể! Cảm ơn vì sự giúp đỡ. Bây giờ tôi có một vài chương trình Scala dựa trên RMI sẽ thực hiện chuyển các tài liệu từ hệ thống Documentum này sang hệ thống Documentum khác (của một phiên bản trước); mã Scala tương tác rất độc đáo với các thư viện Java Documentum.

Tìm hiểu cách nhận chữ ký phương thức bao gồm throws RemoteException dường như là rào cản lớn nhất.

0

Nó sẽ tùy thuộc vào thư viện RMI bạn đang sử dụng nhưng nói chung, câu trả lời là "Có". Mặc dù, lưu ý rằng nếu bạn viết một phương thức trả về (ví dụ) một bộ sưu tập Scala như scala.collections.immutable.List, thì mã Java gọi điện của bạn có thể sẽ không thể chuyển đổi nó thành một số java.util.List.

+0

Tôi không quen thuộc với Scala chút nào, tại sao bạn lại nghĩ rằng chúng tôi có vấn đề chuyển đổi giữa hai loại Danh sách? – Gevorg

+0

Bạn có thể xem câu hỏi này để biết thêm chi tiết: http://stackoverflow.com/questions/2429944/how-to-convert-a-scala-list-to-a-java-util-list. Về cơ bản, 'scala.collections.immutable.List' là không thay đổi (không thể thay đổi) trong khi' java.util.List' thường không được mong đợi là không thay đổi. –

1

Có, điều này có thể được thực hiện. Trình biên dịch rmi làm việc với mã byte java, vì vậy ngôn ngữ được sử dụng thực sự không quan trọng. Tôi đã làm điều này cho một dự án lớp học.

+0

cảm ơn! Tôi không quen thuộc với Scala; có bất kỳ vấn đề nào có thể liên quan đến việc sử dụng hai ngôn ngữ khác nhau hay bất kỳ thứ gì khác mà tôi nên biết không? Điều gì về các loại chuyển đổi bộ sưu tập chẳng hạn? – Gevorg

+0

Có các phương thức chuyển đổi giữa danh sách scala và danh sách java (và các cấu trúc dữ liệu khác) trong thư viện scala, vì vậy đó không phải là vấn đề. –

+0

'rmic' không được dùng nữa kể từ Java 1.5, do đó, thực tế cho các độ tuổi. – Raphael

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