I was having this discussion with my friend regarding Marker interface.
Where a generalize statement is "Interface without any method is Marker interface". We were discussing up to what extent it is correct.
Argument : Interface without any method is Marker interface.
Counter Argument : What if the code using particular interface is not using it as marker purpose.
Support statemetns :
Case : 1) Interface is having constants and no methods.
Case : 2) There is an interface 'I' without any methods, but no one is implementing that interface. Is it still Marker interface?
Case : 3) Serializable is marker interface, after only the code using serializable object to converts it in to bytes.
It is more about how it is used than whether it defines constants or not. eg java.io.Serializable and java.lang.Cloneable indicate that the marked classes will be able to take advantage of special code for serializing and cloning.
If you don't use serialization or cloning then whether it is a marker interface or not doesn't concern you.
Similarly if I create an interface with no methods and no constants but there is no code to use it as a marker then it looks like a marker but does nothing.
Legend has it that if you rub the right tiny ad, a genie comes out.