23. Custom Marker Interface In Java


Interface In Java: Previous                                                                 Next: Constructor in Java         

How To Create Custom 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.javawithease.business;
 
/**
 * This is marker interface for A grade college.
 * @author java tutorial point
 */
public interface AGradeCollegeMarker {
 
}
College1.java
package com.javawithease.business;
 
/**
 * This class represents a A grade college.
 * @author java tutorial point
 */
public class College1 implements AGradeCollegeMarker{
 //Do something
}
College2.java
package com.javawithease.business;
 
/**
 * This class represents a, non A grade college.
 * @author java tutorial point
 */
public class College2 {
 //Do something
}
TestCollege.java
package com.javawithease.business;
 
/**
 * This class is used to test the custom marker interface functionality.
 * @author java tutorial point
 */
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.

Interface In Java: Previous                                                                 Next: Constructor In Java