Junior
Zašto u nekim interfejsima nisu definisane metode?
sobes.tech АИ
Одговор од АИ
Marker interfejsi (označavajući interfejsi) ne definišu metode. Oni služe za označavanje klase, ukazujući na to da ona poseduje određenu osobinu ili mogućnost.
Primeri marker interfejsa:
java.io.Serializable: Označava klasu čiji objekti mogu biti serijalizovani.java.lang.Cloneable: Označava klasu čiji objekti mogu biti klonirani (podržava metoduclone()).java.util.RandomAccess: Označava liste koje podržavaju brzi (konstantno vreme) slučajni pristup svojim elementima.
Korišćenje marker interfejsa omogućava:
- Identifikaciju klasa: Proveru tipa objekta na pripadnost određenoj grupi pomoću operatora
instanceof.// provera da li je objekat serializabilan if (object instanceof Serializable) { // izvršiti serializaciju } - Menjanje ponašanja: API-ji mogu menjati svoje ponašanje u zavisnosti od toga da li klasa implementira marker interfejs. Na primer, ako lista implementira
RandomAccess, operacije nad njom mogu biti optimizovane. - Ograničavanje pristupa: Neki API-ji mogu zahtevati da objekti koje primaju implementiraju određeni marker interfejs.
- Atributi: U modernijim pristupima, mnoga scenarija korišćenja marker interfejsa realizuju se pomoću anotacija. Međutim, marker interfejsi i dalje se koriste u Java standardnoj biblioteci i u legacy kodu.