This week's book giveaway is in the Big Data forum.
We're giving away four copies of Elasticsearch in Action and have Radu Gheorghe & Matthew Lee Hinman on-line!
See this thread for details.
The moose likes Java in General and the fly likes Is an empty interface (without any methods)  is marker? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Elasticsearch in Action this week in the Big Data forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Is an empty interface (without any methods)  is marker?" Watch "Is an empty interface (without any methods)  is marker?" New topic

Is an empty interface (without any methods) is marker?

Rudradutt Joshi
Ranch Hand

Joined: Dec 06, 2008
Posts: 45

Hi All,

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.
David O'Meara

Joined: Mar 06, 2001
Posts: 13459

It is more about how it is used than whether it defines constants or not. eg 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.
I agree. Here's the link:
subject: Is an empty interface (without any methods) is marker?