HeadlinesBriefing HeadlinesBriefing.com

Panduan Kelas Sealed dan Cocokkan Penuh dalam Java

Hacker News •
×

Java 17 memperkenalkan kelas seled, yang memungkinkan pengembang secara eksplisit menentukan subtipe yang diperbolehkan dari sebuah interface atau kelas. Fitur ini memungkinkan cocokkan penuh, sehingga kompilator dapat memverifikasi bahwa semua kasus dalam sebuah expresi switch ditutup tanpa perlu klausa default. Contohnya, sebuah interface seled `SealedType` dengan subtipe `TypeA` dan `TypeB` dapat digunakan dalam sebuah expresi switch yang hanya menangani kedua kasus tersebut, menghilangkan kebutuhan untuk klausa default.

Namun, ini menginduksi perubahan yang destruktif baru: menambahkan subtipe baru ke kelas seled akan memutuskan kode konsumen jika tidak direkompilasi. Jika konsumen tidak direkompilasi, sebuah exception runtime (seperti `MatchException`) dapat terjadi ketika kasus baru diaktifkan. Ini terutama masalah ketika kelas seled terpapar dalam API publik, karena kompilasi terpisah dapat menyebabkan kegagalan yang tidak terdeteksi.

Kelas seled paling berguna di dalam implementasi komponen tunggal, di mana semua kode dikompilasi bersama. Ketika digunakan di antara batas modul, mereka dapat memperkenalkan cara baru untuk memutuskan kode yang hanya dapat terdeteksi pada waktu eksekusi. Pengembang harus mempertimbangkan dengan hati apakah kelas seled cocok untuk API publik.

Sumber: Hacker News · Diringkas oleh HeadlinesBriefing