Sobes.tech
Junior

Kodėl kai kuriose sąsajose metodai nėra apibrėžti?

sobes.tech AI

Atsakymas iš AI

Žymeklio sąsajos (žymeklio sąsajos) nenurodo metodų. Jie naudojami klasės pažymėjimui, nurodant, kad ji turi tam tikrą savybę ar galimybę.

Žymeklio sąsajų pavyzdžiai:

  • java.io.Serializable: Pažymi klasę, kurios objektai gali būti serializuoti.
  • java.lang.Cloneable: Pažymi klasę, kurios objektai gali būti klonuoti (palaiko metodą clone()).
  • java.util.RandomAccess: Pažymi sąrašus, kurie palaiko greitą (pastovų laiką) atsitiktinį prieigą prie savo elementų.

Žymeklio sąsajų naudojimas leidžia:

  • Klasės identifikavimą: Patikrinti objekto tipą naudojant instanceof operatorių.
    // patikrinimas, ar objektas yra serializuojamas
    if (object instanceof Serializable) {
        // serializacija
    }
    
  • Elgesio keitimą: API gali keisti savo elgesį priklausomai nuo to, ar klasė įgyvendina žymeklio sąsają. Pavyzdžiui, jei sąrašas įgyvendina RandomAccess, operacijos su juo gali būti optimizuotos.
  • Prieigos apribojimą: Kai kurios API gali reikalauti, kad perduodami objektai įgyvendintų tam tikrą žymeklio sąsają.
  • Pažymės: Moderniuose požiūriuose, daugelis žymeklio sąsajų naudojimo scenarijų įgyvendinami naudojant anotacijas. Tačiau žymeklio sąsajos vis dar naudojamos Java standartinėje bibliotekoje ir legacy kode.