This example demonstrates how to get the modifiers used in a class using the reflection API. One can use the getModifiers() method in the Class object to know about each modifier used in that specific class. Call isAbstract(int mod), isFinal(int mod), isInterface(int mod), isNative(int mod), isPrivate(int mod), isProtected(int mod), isPublic(int mod) and isStatic(int mod) methods to know about each modifier.
Lets look at the example below to print the modifiers used in java.lang.Math class.
package javabeat.net.reflection; import java.lang.reflect.Modifier; /** * Get Modifiers of a class using Reflection API * * @author krishna * */ public class JavaBeatReflectionExample { public static void main(String[] args) throws Exception { Class<?> clazz = java.lang.Math.class; // return the modifiers for this class or interface encoded in an integer int mod = clazz.getModifiers(); System.out.println("Interface Modifier: " + Modifier.isInterface(mod)); System.out.println("Static Modifier: " + Modifier.isStatic(mod)); System.out.println("Abstract Modifier: " + Modifier.isAbstract(mod)); System.out.println("Final Modifier: " + Modifier.isFinal(mod)); System.out.println("Native Modifier: " + Modifier.isNative(mod)); System.out.println("Private Modifier: " + Modifier.isPrivate(mod)); System.out.println("Protected Modifier: " + Modifier.isProtected(mod)); System.out.println("Public Modifier: " + Modifier.isPublic(mod)); } }
Output
Interface Modifier: false Static Modifier: false Abstract Modifier: false Final Modifier: true Native Modifier: false Private Modifier: false Protected Modifier: false Public Modifier: true