Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29337805
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Java

2010-01-05 12:38:30

Java中注释专题整理

[整理人:hkebao@126.com 整理时间:2010-1-5]

经常用Eclipse的时候如果配置了注释的话经常会有

@deprecated   类似于这样的东西。现在整理一下这方面的内容

J2SE5.0 中能够自定义注释。使用时在@后面跟注释的名字就可以!

一、预定义在J2SE5.0 中的注释

Java.lang 包中预定义了三个注释。它们分别是OverrideDeprecatedSuppressWarnings

Override

这个注释的作用是标识某一个方法是否覆盖了它的父类的方法。那么为什么要标识呢?让我们来看看如果不用Override标识会发生什么事情。

package cn;

import xml.utils.XMLUtils;

class Parent {

    public String  reString() {

       return "parent";

    }

}

public class A extends Parent{

    @Override    写了这个注释之后就表示这个方法是必须要覆盖父类的要不然就报错!

    public String reString() {

       return "a";

    }

}

好处:能够避免程序员在开发过程中写错方法名!

那么Deprecated注释是什么意思呢?如果你经常使用eclipseIDE编写java程序时,可能会经常在属性或方法提示中看到这个词。 如果某个类成员的提示中出现了个词,就表示这个并不建议使用这个类成员。因为这个类成员在未来的JDK版本中可能被删除。之所以在现在还保留,是因为给那 些已经使用了这些类成员的程序一个缓冲期。如果现在就去了,那么这些程序就无法在新的编译器中编译了。

说到这,可能你已经猜出来了。Deprecated注释一定和这些类成员有关。说得对!使用Deprecated标注一个类成员后,这个类成员在显示上就会有一些变化。在eclipse中非常明显。

PS:其实就是我们在查JDK帮助文档的时候经常会看到的那样有些API可能过段时间不再用了就可以加上这个注释!告诉使用者这个方法可能在下一版本中不会再有了。请注意一下

class Parent {

    public String  reString() {

       return "parent";

    }

    @Deprecated                       可能在下一版本中不会再有了

    public int max() {

       return 1;

    }

}

SuppressWarnings

这个世界的事物总是成对出现。即然有使编译器产生警告信息的,那么就有抑制编译器产生警告信息的。SuppressWarnings注释就是为了这样一个目的而存在的。

PS:就是如果一个方法可能会产生警告信息了。通过添加此注释就能够告诉编译器不要产生警告信息。

如下:如果你在你的类里面写这样的代码

public void myMethod() 

{ 

       List wordList = new ArrayList(); 

          wordList.add("foo"); 

}

会出现警告信息。解决办法

第一:修改你的源代码

public void myMethod() 

    { 

       List wordList = new ArrayList(); 

       wordList.add("foo"); 

     }

List里面要存的数据类型确定好。就不会再弹出警告信息了。

第二种办法:

@SuppressWarnings (value={"unchecked"}) 

直接将可能的注释给去掉!

 

以上我们简单介绍了三种常用的注释关键字的使用!

以下介绍下如何自定义注释?

注释的强大之处是它不仅可以使java程序变成自描述的,而且允许程序员自定义注释。注释的定义和接口差不多,只是在interface前面多了一个“@”

public @interface B {

 

}

上面的代码是一个最简单的注释。这个注释没有属性。也可以理解为是一个标记注释。就象Serializable接口一样是一个标记接口,里面未定义任何方法。

也可以定义带有属性的注释

public @interface B {

    String value();

}

使用这个注释的方法

 

@B("abc")                将这个值赋给value了!

public int maxss() {

    return 1;

}

也可以带默认值

public @interface B {

    String value() default "abc";

}

调用方法

@B() 

public int maxss() {

    return 1;

}

如果一个注释有两个属性

public @interface B {

    String v() default "a";

    String b() default "b";

}

 

阅读(744) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~