Java注解ç¸å½äºå¯¹ç±»æè
æ¹æ³æè
åéé¢å¤ç注éï¼æ è¯ï¼ã以ä¸æ¯è½¬è½½
-------------------------------------------------------
Annotationæ¯Java5ã6åªåçæ°ç¹å¾ï¼ä¸æ称ä¹ä¸ºæ³¨è§£ï¼ï¼å¹¶ä¸è¶æ¥è¶å¤çå¾å°äºåºç¨ï¼æ¯å¦SpringãHibernate3ãStruts2ãiBatis3ãJPAãJUnitççé½å¾å°äºå¹¿æ³åºç¨ï¼éè¿ä½¿ç¨æ³¨è§£ï¼ä»£ç ççµæ´»æ§å¤§å¤§æé«ã
è¿äºé½æ¯ä½¿ç¨å«äººå®ä¹ç注解ï¼ä¸è¬æ³¨è§£ç使ç¨é½æ¯å¨ä¸äºåºç¡æ¡æ¶æè
ç±»åºä¸æ¥å®ä¹çï¼å æ¤å¾å°è§è¿æ人èªå·±å»åä¸ä¸ªæ³¨è§£åºæ¥å¹¶ä½¿ç¨å¨ç¨åºä¸ï¼å æ¤æ³¨è§£ç使ç¨å¸¸å¸¸ç»äººæè§å¾ç¥ç§ï¼è¿å°±ä¸ºä½ æå¼æ³¨è§£çé¢çº±ã
注解çç¥ç§ä¹å¤å¨äºï¼éè¿ç±»ä¼¼æ³¨éçæ¹å¼ï¼å¯ä»¥æ§å¶ç¨åºçä¸äºè¡ä¸ºï¼è¿è¡æ¶çç¶æï¼å¯ä»¥ä¸ºæåèµå¼ï¼åé
置信æ¯ççï¼ä¸å¸¸è§ç¼ç æ维大ç¸å¾åºã
åªç¨å«äººå®ä¹å¥½ç注解æ¯æä¸æè¿äºé®é¢çï¼è¦æ³çæ£ç¥é注解å
é¨çç§å¯ï¼è¦èªå·±å®ä¹æ³¨è§£ï¼ç¶åå¨ç¨åºä¸è·å注解信æ¯ï¼æ¿å°æ³¨è§£ä¿¡æ¯åï¼å°±å¯ä»¥ä¸ºææç¨äºã
ä¸é¢æç®åæ¼ç¤ºä¸ä¸ç±»æ³¨è§£çç¨æ³ï¼ç±»æ³¨è§£ãæ¹æ³æ³¨è§£ãå段ï¼ä¹ç§°ä¹åï¼æ³¨è§£çå®ä¹ä¸éç¨ï¼å¹¶ççå¦ä½è·å注解çä¿¡æ¯ã
ä¸ãå®ä¹æ³¨è§£
package lavasoft.anntest;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 类注解
*
* @author leizhimin 2009-12-18 14:15:46
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface MyAnnotation4Class {
public String msg();
}
package lavasoft.anntest;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* æ¹æ³æ³¨è§£
*
* @author leizhimin 2009-12-18 14:16:05
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation4Method {
public String msg1();
public String msg2();
}
package lavasoft.anntest;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* å段注解
*
* @author leizhimin 2009-12-18 15:23:12
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface MyAnnotation4Field {
public String commont();
public boolean request();
}
äºãåä¸ä¸ªç±»ï¼ç¨ä¸è¿äºæ³¨è§£
package lavasoft.anntest;
/**
* ä¸ä¸ªæ®éçJavaç±»
*/
@MyAnnotation4Class(msg = "æµè¯ç±»æ³¨è§£ä¿¡æ¯")
class TestClass {
@MyAnnotation4Field(commont = "æååéç注解信æ¯", request = true)
private String testfield;
@MyAnnotation4Method(msg1 = "æµè¯æ¹æ³æ³¨è§£ä¿¡æ¯1", msg2 = "æµè¯æ¹æ³æ³¨è§£ä¿¡æ¯2")
public void testMethod() {
System.out.println("Hello Worldï¼");
}
}
ä¸ãæµè¯æ³¨è§£
为äºä½¿ç¨æ³¨è§£ï¼éè¦éè¿åå°è·å注解ç对象ãéè¿æ³¨è§£å¯¹è±¡æ¥æä½æ³¨è§£ä¿¡æ¯ã
package lavasoft.anntest;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
/**
* æµè¯ç±»
*
* @author leizhimin 2009-12-18 14:13:02
*/
public class TestOptAnnotation {
public static void main(String[] args) throws NoSuchMethodException, NoSuchFieldException {
TestClass t = new TestClass();
System.out.println("-----------MyAnnotation4Class注解信æ¯---------");
MyAnnotation4Class an4clazz = t.getClass().getAnnotation(MyAnnotation4Class.class);
System.out.println(an4clazz.msg());
System.out.println("-----------MyAnnotation4Method注解信æ¯---------");
Method method = t.getClass().getMethod("testMethod", new Class[0]);
MyAnnotation4Method an4method = method.getAnnotation(MyAnnotation4Method.class);
System.out.println(an4method.msg1());
System.out.println(an4method.msg2());
System.out.println("-----------MyAnnotation4Field注解信æ¯---------");
Field field = t.getClass().getDeclaredField("testfield");
MyAnnotation4Field an4field = field.getAnnotation(MyAnnotation4Field.class);
System.out.println(an4field.commont());
System.out.println(an4field.request());
}
}
è¿è¡ç»æï¼
-----------MyAnnotation4Class注解信æ¯---------
æµè¯ç±»æ³¨è§£ä¿¡æ¯
-----------MyAnnotation4Method注解信æ¯---------
æµè¯æ¹æ³æ³¨è§£ä¿¡æ¯1
æµè¯æ¹æ³æ³¨è§£ä¿¡æ¯2
-----------MyAnnotation4Field注解信æ¯---------
æååéç注解信æ¯
true
Process finished with exit code 0
åãæ»ç»
çå®ä¸é¢çæµè¯è¿ç¨ï¼Annotationå·²ç»ä¸åç¥ç§äºï¼è¿éæ»ç»ä¸èªå®ä¹æ³¨è§£ç使ç¨æ¹æ³ï¼
1ãèªå®ä¹æ³¨è§£ï¼æ³¨æ注解çæ¶ç©ºèå´ï¼ç®å说就æ¯æ³¨è§£é对çç®æ ï¼ç±»ãæ¹æ³ãå段ï¼ï¼ä»¥å注解çæ¶æï¼è¿è¡æ¶ãæè
æºç ä¸ææï¼ã
2ãè¦è·å注解çä¿¡æ¯ï¼å¿
é¡»éè¿Javaçåå°ææ¯æ¥è·åAnnotation对象ï¼å ä¸ºä½ é¤æ¤ä¹å¤æ²¡æå«çè·å注解对象çæ¹æ³ã
3ãè·åäºæ³¨è§£å¯¹è±¡ï¼å°±å¯ä»¥è°ç¨æ³¨è§£çæ¹æ³æ¥è·åç¸å¯¹åºçå¼äºã为åºç¡æ¡æ¶æç¨ã
4ãå½ç¶ï¼æ³¨è§£ä¹å¯ä»¥æ²¡æå®ä¹æåï¼è¿æ ·æ³¨è§£å°±æäºä¸ä¸ªæ 记符å·äºã
温馨提示:答案为网友推荐,仅供参考