'java.lang.Class' provides 'getAnnotation' method, which returns this element's annotation for the specified type if such an annotation is present, else null.
Signature
public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
Example
AppConfiguration appConfiguration = ChatServer.class.getAnnotation(AppConfiguration.class);
Above snippet return the reference of annotation AppConfiguraiton if the class ChatServer is annotated with it, else null.
Find the below working application.
AppConfiguration.java
package com.sample.app;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(value = ElementType.TYPE)
@Retention(value = RetentionPolicy.RUNTIME)
public @interface AppConfiguration {
String filePath() default "appConfig";
String contentType() default "json";
}
ChatServer.java
package com.sample.app;
@AppConfiguration(filePath = "/Users/krishna/app/config.json", contentType = "application/json")
public class ChatServer {
private Integer connectionTimeout;
private int bufferSize;
public ChatServer(int connectionTimeout, int bufferSize) {
this.connectionTimeout = connectionTimeout;
this.bufferSize = bufferSize;
}
public Integer getConnectionTimeout() {
return connectionTimeout;
}
public void setConnectionTimeout(Integer connectionTimeout) {
this.connectionTimeout = connectionTimeout;
}
public int getBufferSize() {
return bufferSize;
}
public void setBufferSize(int bufferSize) {
this.bufferSize = bufferSize;
}
}
GetAnnotationsDefinedOnClass.java
package com.sample.app;
public class GetAnnotationsDefinedOnClass {
public static void main(String[] args) {
AppConfiguration appConfiguration = ChatServer.class.getAnnotation(AppConfiguration.class);
if (appConfiguration == null) {
System.out.println("Class is not anotated with given annotation");
return;
}
String filePath = appConfiguration.filePath();
String contentType = appConfiguration.contentType();
System.out.println("filePath : " + filePath);
System.out.println("contentType : " + contentType);
}
}
Output
filePath : /Users/krishna/app/config.json contentType : application/json
Previous Next Home
No comments:
Post a Comment