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 Serializablearabirim yöntemi writeObject(Object)arasında ObjectOutputStreamböyle bir şey yapar instanceOf Serializablesınıfının uyguladığı olmadığını tespit etmek için Serializableve atar NotSerializableExceptionbuna 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
instanceOfiş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?
SerializableEk Açıklama saçmadır ve@NonNullArayü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.