Java'daki Marker arayüzünün boş bir arayüz olduğu ve bu arayüzü uygulayan sınıfın nesnelerine serileştirme, klonlama vb.
Ancak son zamanlarda bunun derleyici veya JVM ile hiçbir ilgisi olmadığını öğrendim. Örneğin, söz konusu Serializable
arabirim yöntemi writeObject(Object)
arasında ObjectOutputStream
böyle bir şey yapar instanceOf Serializable
sınıfının uyguladığı olmadığını tespit etmek için Serializable
ve atar NotSerializableException
buna göre. Her şey kodunda ele alınır ve bu bir tasarım deseni gibi görünüyor, bu yüzden kendi marker arayüzlerimizi tanımlayabileceğimizi düşünüyorum.
Şimdi şüphelerim:
Yukarıda 1. maddede belirtilen bir işaretleyici arabiriminin tanımı yanlış mı? O zaman bir Marker arayüzünü nasıl tanımlayabiliriz?
Ve
instanceOf
işleci kullanmak yerine , yöntem nedenwriteObject(Serializable)
çalışma zamanı yerine derleme zamanı türü denetimi olacak şekilde bir şey olamaz?Ek Açıklamalar Marker Arayüzlerinden nasıl daha iyidir?
Serializable
Ek Açıklama saçmadır ve@NonNull
Arayüz saçmadır. Şunu söyleyebilirim: Ek açıklamalar Marker + Meta verilerdir. BTW: Ek Açıklamaların İşveren'i, Javadoc'ta doğan ve Ek Açıklamalar tarafından öldürülen XDoclet idi.