黑马程序员技术交流社区

标题: 有关注解 [打印本页]

作者: 静以修身    时间: 2013-9-10 13:53
标题: 有关注解
本帖最后由 静以修身 于 2013-9-11 11:10 编辑

注解有什么用,什么时候用到注解?求自己的理解 {:soso_e132:}
作者: 深知一生短暂    时间: 2013-9-10 14:09
本帖最后由 深知一生短暂 于 2013-9-10 14:11 编辑

注解分为:标记注解、单值注解、完整注解三类.
不会直接影响程序的语义,只是作为解释说明的作用。
例如标记方法过时,编译提示等
注解有三个生命周期,在编译器编译时决定注解是否在源代码中保留!
public enum RetentionPolicy{
SOURCE,
// 此类型会被编译器丢弃


CLASS,
// 此类型注解会保留在class文件中,但JVM会忽略它
RUNTIME
// 此类型注解会保留在class文件中,JVM会读取它

}
例:@Retention(RetentionPolicy.RUNTIME)这一注解表示运行时还会对注解进行读取
@deprecated表示方法过时
等等。。还有很多,还可以自定义

作者: 单曲循环    时间: 2013-9-10 14:25
注解是从java5以后引进的,Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。
注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 java.lang.annotation 包中。
注解的格式是 @XXXX 比如常用的就是 @overlode、@override、
这是一个注解的例子

  1. @Documented
  2. @Target({ElementType.TYPE,ElementType.METHOD})
  3. @Retention(RetentionPolicy.RUNTIME)
  4. public @interface Yts {
  5.     public enum YtsType{util,entity,service,model};
  6.    public YtsType classType() default YtsType.util;
  7. }<p> </p>
复制代码

作者: 早知道    时间: 2013-9-10 15:29
像加上@Override这个注解,如果没覆盖父类方法的话编译就不会通过,所以注解有提示功能。还有spring中也用到注解,其作用有注入,也有事务声明之类的。
作者: 静以修身    时间: 2013-9-10 18:06
楼主都说了那几个常用的注解,也说了注解的作用是解释说明,但是却没有说到怎样获取注解。
注解相对于一种标记,在程序中加了注解就等于打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具盒其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。
不过还是谢谢各位!!
作者: 陶智第    时间: 2013-9-10 23:25
注解一个利人利己的东西。
在编程过程中遇到难点疑点,可以用注解进行标示,方便过后再次思考或请教别人
程序完成后,可以用注解写上自己的经验教训、标注一些核心代码,从而自己或别人以后阅读




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2