Junior
Kāpēc dažās saskarnēs netiek definētas metodes?
sobes.tech AI
Atbilde no AI
Šāda veida interfeisi sauc par marķēšanas interfeisiem (marker interfaces). Tie nesatur metodes un tiek izmantoti klases marķēšanai, norādot kompilatoram vai JVM noteiktas īpašības vai semantiku.
Piemēri:
java.io.Serializable: Norāda, ka klase ir serializējama.java.lang.Cloneable: Norāda, ka objekts var tikt klonēts.java.util.RandomAccess: Optimizē nejaušu piekļuvi saraksta elementiem.
Priekšrocības:
- Semantika: Skaidri norāda izstrādātāja nodomu attiecībā uz klasi.
- Polimorfisms: Atļauj izmantot polimorfiskus izsaukumus, strādājot ar klases grupu, kas realizē vienu un to pašu marķēšanas interfeisu.
- Marķēšana: Var tikt izmantots, lai sniegtu papildu informāciju rīkiem (piemēram, ietvariem, ORM).
Alternatīvas (atkarībā no konteksta):
- Anotācijas (
@interface). - Abstraktas klases.
Marķēšanas interfeisi ir vēlami, kad nepieciešams norādīt klases atribūtu bez uzvedības pievienošanas.