4 điểm bởi GN⁺ 2023-09-18 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Java 21, dự kiến phát hành vào ngày 19/9/2023, hỗ trợ record pattern trong khối switch và biểu thức switch, một bản cập nhật quan trọng giúp Java tiến gần hơn tới các mẫu lập trình hàm như Kotlin, Rust và C#
  • Java đã phát triển nhanh trong 10 năm qua, và kể từ Java 9, các bản cập nhật lớn được phát hành mỗi 6 tháng
  • Java 21 ổn định hóa record pattern và pattern matching cho switch, cho phép biểu diễn algebraic data type, một yếu tố cốt lõi của lập trình hàm
    • Khái niệm algebraic data type được giải thích thông qua type theory, một nhánh của lý thuyết tập hợp
  • Phiên bản mới cũng giới thiệu tính năng pattern matching, cho phép kiểm chứng tĩnh đối với các mẫu dữ liệu cụ thể
  • Java 21 cũng đưa vào sealed class hoặc interface để lập trình viên có thể kiểm soát tương tác của người dùng với API thư viện
  • Sealed class hoặc interface hỗ trợ mẫu thiết kế dựa trên khái niệm sum type, nghĩa là tại một thời điểm, một kiểu có thể là một trong các thành phần cấu thành của nó
  • Phiên bản mới còn có guard clause trong câu lệnh và biểu thức switch, giúp biểu đạt ngắn gọn các điều kiện phức tạp
  • Java 21 giới thiệu một lớp ngoại lệ mới là java.lang.MatchException, xảy ra khi pattern match gặp lỗi
  • Bài viết này thảo luận về cách sử dụng khối switch trong Java 21 và cách nó có thể gây ra MatchException trong một số điều kiện nhất định
  • MatchException xảy ra khi khối switch không khớp với selector cũng như bất kỳ biến thể nào được chỉ định, và điều này được xem là rất hiếm gặp
  • Java Enhancement Proposal (JEP) 441 thừa nhận rằng các phương thức truy cập record luôn ném ngoại lệ là trường hợp rất bất thường
  • Bài viết đưa ra ví dụ về một khối switch gây ra MatchException do lỗi chia cho 0 trong guard clause
  • Tác giả chỉ ra rằng tình huống trở nên phức tạp hơn khi số bị chia trong phép chia là một giá trị động có thể bằng 0
  • Đây là một phần trong loạt bài khám phá các tính năng và khả năng mới của Java 21; trong tương lai, bài viết sẽ tiếp tục xem xét một số đặc điểm thú vị cùng các ví dụ thực tiễn về cách những tính năng này có thể cải thiện việc viết mã Java
  • Tác giả cũng đề cập rằng một số chủ đề cụ thể, như cách generic tương tác với switch pattern, chưa được đề cập trong bài này nhưng có thể sẽ được nói tới trong các bài viết sau
  • Bài viết phù hợp với những ai quan tâm đến pattern matching trên JVM, lập trình hàm, Java 21 và algebraic type

Chưa có bình luận nào.

Chưa có bình luận nào.