Marker interface doesn't has any thing. It contains only interface declarations, then how it is handled by the JVM for the classes which implements this marker interface?
Can we create any new marker interfaces ?
See Question&Answers more detail:osMarker interface doesn't has any thing. It contains only interface declarations, then how it is handled by the JVM for the classes which implements this marker interface?
Can we create any new marker interfaces ?
See Question&Answers more detail:osYour question should really be how does the compiler handle marker interfaces, and the answer is: No differently from any other interface. For example, suppose I declare a new marker interface Foo
:
public interface Foo {
}
... and then declare a class Bar
that implements Foo
:
public class Bar implements Foo {
private final int i;
public Bar(int i) { this.i = i; }
}
I am now able to refer to an instance of Bar
through a reference of type Foo
:
Foo foo = new Bar(5);
... and also check (at runtime) whether an object implements Foo
:
if (o instanceof Foo) {
System.err.println("It's a Foo!");
}
This latter case is typically the driver behind using marker interfaces; the former case offers little benefit as there are no methods that can be called on Foo
(without first attempting a downcast).