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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.w3schools.business;
public interface AGradeCollegeMarker {
}
package com.w3schools.business; public interface AGradeCollegeMarker { }
package com.w3schools.business;


public interface AGradeCollegeMarker {

}

College1.java

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.w3schools.business;
public class College1 implements AGradeCollegeMarker{
//Do something
}
package com.w3schools.business; public class College1 implements AGradeCollegeMarker{ //Do something }
package com.w3schools.business;


public class College1 implements AGradeCollegeMarker{
	//Do something
}

College2.java

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.w3schools.business;
public class College2 {
//Do something
}
package com.w3schools.business; public class College2 { //Do something }
package com.w3schools.business;


public class College2 {
	//Do something
}

TestCollege.java

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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);
}
}
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); } }
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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
A grade college.
A grade college.
A grade college.