- Java 21, yang dijadwalkan rilis pada 19/9/2023, mendukung record pattern dalam blok dan ekspresi switch, sebuah pembaruan penting yang membuat Java lebih dekat ke pola pemrograman fungsional seperti Kotlin, Rust, dan C#
- Java telah berkembang pesat selama 10 tahun terakhir, dan sejak Java 9 pembaruan besar dirilis setiap 6 bulan
- Java 21 mematangkan record pattern dan pattern matching pada switch, sehingga memungkinkan representasi algebraic data type, salah satu elemen inti pemrograman fungsional
- Konsep algebraic data type dijelaskan melalui type theory, salah satu cabang dari teori himpunan
- Versi baru ini juga memperkenalkan fitur bernama pattern matching, yang memungkinkan verifikasi statis terhadap pola data tertentu
- Java 21 juga memperkenalkan sealed class atau interface agar pengembang dapat mengontrol interaksi pengguna dengan API library
- Sealed class atau interface mendukung design pattern yang didasarkan pada konsep sum type, yang berarti pada suatu saat tipe dapat menjadi salah satu dari komponen penyusunnya
- Versi baru ini juga menghadirkan guard clause yang memungkinkan kondisi kompleks diekspresikan secara ringkas di dalam statement dan ekspresi switch
- Java 21 memperkenalkan kelas exception baru bernama
java.lang.MatchException yang terjadi ketika pattern match gagal secara tidak semestinya
- Artikel ini membahas penggunaan blok switch di Java 21 dan bagaimana dalam kondisi tertentu hal itu dapat memicu
MatchException
MatchException terjadi ketika blok switch tidak cocok dengan selector maupun salah satu varian yang ditentukan, dan ini dianggap sangat tidak biasa
- Java Enhancement Proposal (JEP) 441 mengakui bahwa sangat tidak biasa jika metode accessor record selalu melempar exception
- Artikel ini memberikan contoh blok switch yang memicu
MatchException akibat error pembagian dengan 0 di dalam guard clause
- Penulis mencatat bahwa situasinya menjadi lebih rumit ketika bilangan yang dibagi dalam operasi pembagian adalah nilai dinamis yang bisa bernilai 0
- Artikel ini merupakan bagian dari seri yang mengeksplorasi fitur-fitur baru dan kapabilitas di Java 21, dan ke depannya akan melihat beberapa fitur menarik beserta contoh praktis tentang bagaimana fitur-fitur ini dapat digunakan untuk memperbaiki cara penulisan kode Java
- Penulis menyebut bahwa topik tertentu, seperti bagaimana generic berinteraksi dengan switch pattern, tidak dibahas dalam artikel ini tetapi mungkin akan dibahas di artikel mendatang
- Artikel ini relevan bagi mereka yang tertarik pada pattern matching di JVM, pemrograman fungsional, Java 21, dan algebraic type
Belum ada komentar.