黑马程序员技术交流社区

标题: java中注解一般什么时候用啊? [打印本页]

作者: niushicha    时间: 2014-8-10 19:27
标题: java中注解一般什么时候用啊?
是不是在做大项目的时候才用啊?
作者: pengyu1801    时间: 2014-8-10 19:37
注释有 3 中基本类型 a. 标记注释 -- 没有变量,只有名称标识。例如 @annotation b. 单一值注释 -- 在标记注释的基础上提供一段数据。如 @annotation(“data”) c. 完整注释 -- 可以包括多个数据成员,每个数据成员由名称和值构成。 @annotation(val1="data1",val2="data2") Java 中提供 3 个内置注释类型 a. Override ,只能用于方法 ( 不能用于类,包声明或者其他构造 ) 作用:可以保证编译时候 Override 函数的声明正确性 用法: @Override public void fun(){..} b.Deprecated 同样只能作用与方法 作用:对不应再使用的方法进行注解 用法: @Deprecated public void fun{...} // 它们说这个注释跟函数要同一行 c.SupressWarnings 可以注释一段代码 作用:关闭特定的警告信息,例如你在使用泛型的时候未指定类型 用法: @SupressWarnings(value={"unchecked"}) .. 代码 Java 中还提供了四种元注释,专门负责注释其他的注释 @Target 表示该注释可以用于什么地方。可用的 ElementType 参数包括: CONSTRUCTOR : 构造器的声明 FIELD : 域声明 ( 包括 enum 实例 ) LOCAL_VARIABLE : 局部变量声明 METHOD : 方法声明 PACKAGE : 包声明 PARAMETER : 参数声明 TYPE : 类、接口 ( 包括注解类型 ) 或 enum 声明 @Retention 表示需要在什么级别保存该注释信息。可选的 RetentionPoicy 参数包括: SOURCE : 注释将被编译器丢掉 CLASS : 注释在 class 文件中可用,但会被 VM 丢弃 RUNTIME : VM 将在运行时也保留注释,因此可以通过反射机制读取注释的信息。 @Documented 将注释包含在 JavaDoc 中 @Inheried 允许子类继承父类中的注释。 追问: 能够全一点的介绍吗? 我想要更全一点的! 还有其他人 我说的 是 注解 不是 注释 有详细的 全一点的吗? 回答: 类 * <p>Title: 系统登录控制</p> * <p>Description: 系统登录控制</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: 21stc</p> * @author 余国平 * @version 1.0 方法 /** * 登录系统 * @param req request * @param res response * @throws IOException * @throws ServletException */ 常用到的也就是这些了。。
作者: 陈君    时间: 2014-8-10 20:26
写注释是程序员的良好喜欢习惯。不论大小项目。还有请到安卓板块发帖去。
作者: niushicha    时间: 2014-8-10 21:00
pengyu1801 发表于 2014-8-10 19:37
注释有 3 中基本类型 a. 标记注释 -- 没有变量,只有名称标识。例如 @annotation b. 单一值注释 -- 在标记 ...

谢谢回复!
作者: Justfeeling    时间: 2014-8-10 21:43
不是,注释是为了让自己或者别人看的比较容易理解而写的代码注释。自己练习着写,对培养思路比较好。
作者: 罗超8849    时间: 2014-8-10 23:46
用了更方便,出问题,或者是交接工作的时候
作者: liujingnan    时间: 2014-8-10 23:56
是为了程序有更强的可读性
作者: wawsc5354524    时间: 2014-8-11 01:00
什么时候都可以用,记住一句话:你的代码是给别人看的!
作者: 范靖明    时间: 2014-8-11 02:08
Java里面有三种注释哦,分别是单行注释、多行注释、文档注释!在平常写代码的时候也可以注释啊,注释为了方便过后能看得懂!
作者: 草鱼狂飙    时间: 2014-8-11 07:44
注解就是为了别人接手自己代码或者自己修改很久以前代码时候能帮助修改者或者维护者第一时间看懂代码。
作者: 我行我SHOW‰    时间: 2014-8-11 11:27
注解相当于笔记一样,有注解看代码也容易些~~~
作者: ﹑淼    时间: 2014-8-11 12:45
写注释 是好习惯,捋清了你的思维,方便了阅读。代码就是思维的体现,注释就是你思维的体现。
作者: 刘小记.    时间: 2014-8-11 13:39
因人而异
作者: 柠萌不    时间: 2014-8-11 15:08
写注释方便阅读啊
不然写完代码别人看不懂自己也看不懂,出错了都不方便找错
作者: 韩天雷    时间: 2014-8-11 15:33
项目会经常解析properies文件,根据key获得value,下面写一个如何使用注解的方式来获得value
1. AnnotateProperties类:用来获得properties文件的路径
  1. package AnnotateSrc;

  2. import java.lang.annotation.ElementType;
  3. import java.lang.annotation.Retention;
  4. import java.lang.annotation.RetentionPolicy;
  5. import java.lang.annotation.Target;

  6. @Target({ ElementType.TYPE })
  7. @Retention(RetentionPolicy.RUNTIME)
  8. public @interface AnnotateProperties {
  9.     String value();
  10.     String key() default "";

  11. }
复制代码

2.Property类:用来记录键值对
  1. package AnnotateSrc;

  2. import java.lang.annotation.ElementType;
  3. import java.lang.annotation.Retention;
  4. import java.lang.annotation.RetentionPolicy;
  5. import java.lang.annotation.Target;

  6. @Target({ ElementType.FIELD })
  7. @Retention(RetentionPolicy.RUNTIME)
  8. public @interface Property {

  9.         String key();
  10.        
  11.         String defaultValue() default "";
复制代码

3.Annotate:JavaBean使用注解的方式声明properties文件存放的路径
  1. package test;

  2. import AnnotateSrc.AnnotateProperties;
  3. import AnnotateSrc.Property;

  4. [color=red]@AnnotateProperties(value = "test.properties", key = "C:\\")[/color]
  5. public class Annotate {   
  6.     @Property(key = "header")
  7.     private String header_;

  8.     public String getHeader() {
  9.         return header_;
  10.     }

  11.     public void setHeader(String header) {
  12.         this.header_ = header;
  13.     }
  14. }
复制代码

4.Test :测试类
  1. package test;

  2. import java.io.BufferedInputStream;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileNotFoundException;
  6. import AnnotateSrc.AnnotateProperties;
  7. import java.util.Properties;

  8. public class Test {

  9.     /**
  10.      * @param args
  11.      * @throws Exception
  12.      */
  13.     public static void main(String[] args) throws Exception {
  14.         AnnotateProperties annotationProperties = Annotate.class
  15.         .getAnnotation(AnnotateProperties.class);
  16.         String propertiesName = annotationProperties.value();
  17.         String dir = annotationProperties.key();
  18.         System.out.println(dir+propertiesName);
  19.         File f = new File(dir+"\\"+propertiesName);
  20.         Properties pro = readProperties(f);
  21.         System.out.println(pro.get("header"));
  22.         
  23.     }
  24.    
  25.     private static Properties readProperties(File file) throws Exception {
  26.         BufferedInputStream bis = null;
  27.         Properties prop = null;
  28.         try {
  29.             bis = new BufferedInputStream(new FileInputStream(file));
  30.             prop = new NullableProperties();
  31.             prop.load(bis);
  32.         } catch (FileNotFoundException ex1) {
  33.             throw new Exception(ex1);
  34.         } catch (SecurityException e) {
  35.             throw new Exception(e);
  36.         } catch (Exception ex2) {
  37.             throw new Exception(ex2);
  38.         } finally {
  39.             try {
  40.                 if (bis != null) {
  41.                     bis.close();
  42.                 }
  43.             } catch (Exception ex) {
  44.             }
  45.         }
  46.         return prop;
  47.     }
  48.    
  49.     public static class NullableProperties extends Properties {
  50.         public String getProperty(String key, String defaultValue) {
  51.             String origin = super.getProperty(key, defaultValue);
  52.             if (origin != null && origin.trim().length() == 0) {
  53.                 // 空白
  54.                 return defaultValue;
  55.             }
  56.             return origin;
  57.         }
  58.     };
  59. }
复制代码

转自http://570421779.iteye.com/blog/1547240
作者: huanhuan    时间: 2014-8-11 16:23
注释是让自己后者别的程序看的,只要能清晰表达意思的时候就用
作者: cyc523633157    时间: 2014-8-11 16:23
注释是给程序猿看的,如果有注释很清晰,一目了然,所有要养成写注释的好习惯。。。。。




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