Java 13 Switch và Text Blocks – ơn trời, thay đổi đây rồi
Bài viết được sự cho phép của tác giả Kiên Nguyễn
Ơn trời, cải tiến của Java 13 Switch và Text Blocks đây rồi!
1. Ấp ủ từ lâu
Ở Java 13, sự có mặt của JEP 354: Switch Expressions là sự kế thừa từ Java 12 Switch Expressions. Bản Java 12 đã bổ sung từ khóa yield (như bên Python). Mục đích của từ khóa yeild là return giá trị trong biểu thức Switch.
Đối với chuyện cộng chuỗi string bằng plus (+) thì quá đỗi ám ảnh anh em coder Java rồi. Mà hầu như chẳng còn xài nữa. Giờ có viết cũng cố đổi qua String Builder hay Buffer gì đó, chú ý sao cho performance không ảnh hưởng.
Tất nhiên, Java không như Javascript, cải tiến hay release feature mới liên tục, mỗi tuần vài shot. Nhưng mỗi thay đổi trong Java đều được chú ý, vì ít khi thay đổi.
2. Java 13 Switch Expression
Cùng xem xem có gì thay đổi khi Oracle release bản Java 13 nha. Đã là lập trình viên thì chắc chắn đụng tới Switch case hằng ngày. Tại sao?
- Viết switch case trông code clean hơn hẳn.
- Nhìn rõ ràng, dễ handle các case.
- Trường hợp 6,7 cái trở lên thì ăn đứt if, else
// Kiểu viết thông thường private String swithCaseNormal(int chanom) { String result = "Kieblog"; switch (chanom){ case 1: result = "Old switch"; break; case 2: result = "New switch"; break; default: yield -1; break; }; return result; }
Ở Java 13 đã chuyển qua sử dụng yeild như thế này:
// Ở Java 13, không còn break, thay vào đó là yeild private String swithCaseNormal(String mode) { String result = "Kieblog"; switch (mode) { case 1: yield "Old switch"; case 2: yield "New switch"; default: yield -1; }; return result; }
Tuy nhiên, nếu viết kiểu arrow mũi tên thì Java 13 vẫn support như thường
// Nếu lỡ viết kiểu arrow như Java 12 thì Java 13 vẫn support như thường private String swithCaseNormal(String mode) { String result = "Kieblog"; switch (mode) { case 1 -> "Old switch"; case 2 -> "New switch"; default -> -1; }; return result; }
Bỏ đi breaks để sử dụng arrow và yeild cũng có một số cái lợi như sau:
- Đỡ mất công break cho từng case
- Tránh bug khi quên break sẽ nhảy xuống case khác
- Ngắn source, đơn giản, dễ hiểu, viết lẹ nữa chứ
3. Text Blocks
Thật lòng mà nói, ngoài Java 13 Switch, Text Blocks như là vị cứu tinh cho mấy cái dự án JDBC cũ cũ. Cũng đỡ tạo ác cảm, khẩu nghiệp cho lập trình viên.
Cứ có gì cần công chuyện, append bằng String Builder, String Buffer thì mệt vãi đ**. Mà cộng chuỗi bằng “+” thì củ chuối không thể chịu được.
// Một số dự án maintain SQL cũ còn viêt SQL Statement theo kiểu này class KieBlog { public void kieblogMain() { String txt = " Kie\n" + " Blog\n" + " Content\n" + " Is\n" + " Good\n"; } }
Một số dự án render hoặc trả message lỗi bằng HTML tĩnh viết kiểu String cũng như được giải thoát
// Cách viết đơn giản, đỡ đâu đầu, chỉ cần """ rồi viết class KieBlog { public void kieblogMain() { String txt = """ Kie Blog Content Is Good """; } }
Sử dụng “”” cũng bỏ luôn nỗi ám ảnh dài lâu về tab hay space. Không format code cũng không được, mà format cho đẹp thì mất công, mất sức. Ba dấu phẩy thật sự lợi hại, tiết kiệm thời gian.
4. Tham khảo
- Java 11 – What’s new? – Kieblog
- Tuốt tuồn tuột về Java 8 – những thay đổi lớn! – Kieblog
- Java 13 Switch Expessions
- Switch Expression – Oracle docs
Bài viết gốc được đăng tải tại kieblog.vn
Có thể bạn quan tâm:
- Các cải tiến của Java cho Switch statement từ Java 12
- PHP 8: match hay là switch?
- Blockchain là gì? Các ứng dụng liên quan đến Blockchain
Xem thêm Tuyển dụng Java hấp dẫn trên TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- i iOS 18 có gì mới? Có nên cập nhật iOS 18 cho iPhone của bạn?
- G Gamma AI là gì? Cách tạo slide chuyên nghiệp chỉ trong vài phút
- P Power BI là gì? Vì sao doanh nghiệp nên sử dụng PBI?
- K KICC HCMC x TOPDEV – Bước đệm nâng tầm sự nghiệp cho nhân tài IT Việt Nam
- T Trello là gì? Cách sử dụng Trello để quản lý công việc
- T TOP 10 SỰ KIỆN CÔNG NGHỆ THƯỜNG NIÊN KHÔNG NÊN BỎ LỠ
- T Tìm hiểu Laptop AI – So sánh Laptop AI với Laptop thường
- M MySQL vs MS SQL Server: Phân biệt hai RDBMS phổ biến nhất
- S SearchGPT là gì? Công cụ tìm kiếm mới có thể đánh bại Google?