2015-08-20 13 views
7

Tôi có thể sử dụng java 8 ở mức độ nào trong một dự án sbt java/scala 2.10 hỗn hợp?
Tôi có thể phát ra bytecode java 8 không? Sử dụng các tính năng ngôn ngữ java 8? Hoặc có các tính năng trong scala 2.11 cần thiết không? Có một câu chuyện interop?Tôi có thể sử dụng java 8 trong một dự án scala 2.10/java hỗn hợp được xây dựng bởi sbt không?

+0

http://scala-lang.org/news/2.11.1: tìm kiếm Java 8 –

+0

Tôi biết rằng scala 2.11 có hỗ trợ java 8 thử nghiệm, nhưng tôi hỏi về scala 2.10 (vì dự án không thể nâng cấp lên scala 2.11). –

+1

Vì vậy, nếu bạn biết rằng 2,11 có hỗ trợ thử nghiệm, nó chỉ là lý do mà 2,10 sẽ có thậm chí ít hơn hoặc thậm chí không hỗ trợ. –

Trả lời

8

Từ 2.10.4Scala release notes:

mới phát bytecode dựa trên ASM

thể nhắm mục tiêu JDK 1.5, 1.6 và 1.7

phát ra 1,6 bytecode theo mặc định

Cũ 1,5 backend là không được chấp nhận

Ngoài ra

Bản phân phối chính thức của Scala 2.12 sẽ được xây dựng cho Java 8 (và do đó yêu cầu nó). Thông tin nền

Nhiều khi bạn có thể mong đợi để sử dụng đầy đủ Java 8:

Các Scala 2.11.x loạt nhắm vào Java 6, với (phát triển)> Thử nghiệm hỗ trợ Java 8. Trong 2.11. 1, Java 8 hỗ trợ chủ yếu là giới hạn đọc> Java bytecode 8 và phân tích cú pháp Java 8 nguồn. Hãy chú ý theo dõi để hoàn thành hơn> hỗ trợ Java 8 (thử nghiệm). Bản phát hành chính tiếp theo, 2,12, nhiều khả năng nhất> có khả năng nhắm mục tiêu Java 8 theo mặc định.

Và ...

Planned tương lai Java 8 tập trung bổ sung cho Scala 2.12 bao gồm Java 8> đóng cửa phong cách, mà sẽ cho phép trình biên dịch Scala phát ra đóng cửa> lớp (lambdas) cũng giống như bạn có thể với Java 8. Cũng có kế hoạch lambda> cú pháp cho các loại SAM. Một lần nữa, trong thời trang Java 8, điều này cho phép bạn khởi tạo> bất kỳ kiểu nào với một phương thức trừu tượng đơn lẻ bằng cách chuyển một lambda, cải thiện> trải nghiệm người dùng cho các thư viện được viết cho Java 8 trong Scala.

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