Marker interface in java

Marker/Tagging Interfaces:

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

Why marker interface used:  

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

Syntax:

public interface Interface_Name {

}

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

Example:

AGradeCollegeMarker.java

package com.w3spoint.business;
 
/**
 * This is marker interface for A grade college.
 * @author W3spoint
 */
public interface AGradeCollegeMarker {
 
}

College1.java

package com.w3spoint.business;
 
/**
 * This class represents a A grade college.
 * @author W3spoint
 */
public class College1 implements AGradeCollegeMarker{
	//Do something
}

College2.java

package com.w3spoint.business;
 
/**
 * This class represents a, non A grade college.
 * @author W3spoint
 */
public class College2 {
	//Do something
}

TestCollege.java

package com.w3spoint.business;
 
/**
 * This class is used to test the custom marker interface functionality.
 * @author W3spoint
 */
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.

Download this example.
 
Next Topic: Constructor in java with example.
Previous Topic: Interface in java with example.

Java interview questions on interface and abstract class

Please Share