2014-05-10 14 views
15

Trước Java 8, Chúng tôi không thể sử dụng các biến không phải cuối cùng bên trong lớp địa phương. Nhưng bây giờ họ đang cho phép cuối cùng cũng như hiệu quả cuối cùng (những giá trị của ai đã không được thay đổi), có thể được giới thiệu bởi các lớp học địa phương. Những gì tôi biết (Sửa chữa cho tôi nếu tôi sai), họ không hỗ trợ giới thiệu các giá trị không phải cuối cùng bởi vì có giá trị có thể được thay đổi. Vì vậy, làm thế nào họ đang hỗ trợ nó ngay bây giờ và tại sao nó không được hỗ trợ trước đó.Lớp địa phương có thể truy cập biến không phải cuối cùng trong java 8

Trả lời

25

Tình hình hoàn toàn không thay đổi. Trình biên dịch chỉ thông minh hơn một chút và không buộc bạn sử dụng từ khóa cuối cùng nữa.

Nếu phát hiện biến là hiệu quả cuối cùng, tức là chỉ được gán một lần và không bao giờ sau đó, mọi thứ đều tốt. Nếu nó phát hiện ra rằng nó không hiệu quả cuối cùng, nó từ chối biên dịch.

Vì vậy, thay vì buộc bạn phải thực hiện biến cuối cùng, nó sẽ tự động phát hiện nó. Nhưng bạn vẫn không thể sử dụng các biến không hiệu quả cuối cùng bên trong một lớp bên trong hoặc lambda.

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