Java Marker interface

Marker/Tagging Interfaces:

An interface with no methods is known as a marker or tagged interface.

 

Why marker interface used:

It provides some useful information to the JVM/compiler so that the JVM/compiler performs some special operations on it. It is used for better readability of code.  Example: Serializable, Cloneable, etc.

 

Syntax

public interface Interface_Name {

}

Let us understand it with an example. We have no. of colleges from which some colleges are of A grade. We have created an AGradeCollegeMarker interface which contains no method and only informs the JVM that it is an A-grade college. Every A-grade college has to implement AGradeCollegeMarker. In the TestCollege class, the tester method will print “A grade college.” if the object belongs to A grade college.

Example:

AGradeCollegeMarker.java

package com.w3schools.business;


public interface AGradeCollegeMarker {

}

College1.java

package com.w3schools.business;


public class College1 implements AGradeCollegeMarker{
	//Do something
}

College2.java

package com.w3schools.business;


public class College2 {
	//Do something
}

TestCollege.java

package com.w3schools.business;

public class TestCollege {
	static void tester(Object obj){
		if (obj instanceof AGradeCollegeMarker) {
                       System.out.println("A grade college.");
                 }
	}
	
	public static void main(String args[]){
		College1 obj1 = new College1();
		College2 obj2 = new College2();
		
		//test college objects
		tester(obj1);
		tester(obj2);
	}
}

Output

A grade college.