A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 静以修身 中级黑马   /  2013-9-10 13:53  /  2209 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 静以修身 于 2013-9-11 11:10 编辑

注解有什么用,什么时候用到注解?求自己的理解 {:soso_e132:}

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 深知一生短暂 于 2013-9-10 14:11 编辑

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


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

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

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
注解是从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>
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
像加上@Override这个注解,如果没覆盖父类方法的话编译就不会通过,所以注解有提示功能。还有spring中也用到注解,其作用有注入,也有事务声明之类的。

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
楼主都说了那几个常用的注解,也说了注解的作用是解释说明,但是却没有说到怎样获取注解。
注解相对于一种标记,在程序中加了注解就等于打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具盒其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。
不过还是谢谢各位!!

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
注解一个利人利己的东西。
在编程过程中遇到难点疑点,可以用注解进行标示,方便过后再次思考或请教别人
程序完成后,可以用注解写上自己的经验教训、标注一些核心代码,从而自己或别人以后阅读
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马