How to write our own marker interface in Java?

前端 未结 6 855
遇见更好的自我
遇见更好的自我 2021-02-04 06:15

I know marker interface in java. It is used to define a specific behaviour about a class. For example, Serializable interface has the specific ability to store an object into by

6条回答
  •  孤独总比滥情好
    2021-02-04 06:45

    • How JVM invoke this specific behavior

    ObjectOutputStream and ObjectInputStream will check your class whether or not it implementes Serializable, Externalizable. If yes it will continue or else will thrown NonSerializableException.

    • How to write our own marker interface

    Create an interface without any method and that is your marker interface.

    Sample

    public interface IMarkerEntity {
    
    
    }
    

    If any class which implement this interface will be taken as database entity by your application.

    Sample Code:

    public boolean save(Object object) throws InvalidEntityException {
       if(!(object instanceof IMarkerEntity)) {
           throw new InvalidEntityException("Invalid Entity Found, cannot proceed");
       } 
       database.save(object);
    }
    
    • Is this possible to have methods in marker interface?

    The whole idea of Marker Interface Pattern is to provide a mean to say "yes I am something" and then system will proceed with the default process, like when you mark your class as Serialzable it just tells that this class can be converted to bytes.

提交回复
热议问题