File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
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 REST with Spring (video course) this week in the Spring 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?
It's not a secret anymore!