Skip to content

M02 · Bab 8± 45 menitDraf AI

Sealed Type & Pattern Matching

Tujuan belajar

  • Membatasi turunan sebuah tipe dengan sealed dan permits
  • Memilih modifier subclass yang tepat — final, sealed, atau non-sealed
  • Memakai type pattern dan record pattern di switch dan instanceof
  • Menambahkan guard when, pola _, dan case null
  • Memanfaatkan exhaustiveness agar compiler mendeteksi kasus yang terlewat

Prasyarat: Record & Enum

Kuis

5 soal · lulus bila minimal 70% benar

1.Ada sealed interface Payment permits Card, Cash {}, record Card(String number, long amount), dan record Cash(long amount). Apa output dari check(new Card("4111", 2_500_000)) + " " + check(new Card("4111", 50_000)) + " " + check(new Cash(20_000)) bila check berisi case Card(_, long amount) when amount > 1_000_000 -> "verifikasi"; case Card _ -> "kartu"; case Cash(long amount) -> "tunai " + amount;?
2.Sebuah switch atas sealed interface Notification permits Email, Sms ditulis tanpa default. Tim lalu menambah Push ke permits. Apa yang terjadi saat build?
3.Kode berikut gagal dikompilasi: case Card c -> "kartu"; case Card(String n, long amount) when amount > 1_000_000 -> "kartu besar";. Kenapa?
4.Kapan subclass dari sebuah sealed class sebaiknya dideklarasikan non-sealed?
5.Apa arti _ pada case Regular(_, int kg) -> 12_000L * kg;?

Jawab semua soal dulu (0/5)