当前位置: 首页 > news >正文

php 网站发布/买卖友情链接

php 网站发布,买卖友情链接,网站建设格局,万网 网站建设方案书简单Java注解 JDK5提供的简单注解类型只有3个. 这三个都是用来预防错误或者进行提醒的,分别是: 1.Override 2.Deprecated 3.Suppresswarnings 需要注意,JDK5(另一个说法,Tiger)实际上并没有许多内置注解;相反,它允许核心Java支持注解特性的能力. JSR-175中严格规定它用来定义…

简单Java注解

JDK5提供的简单注解类型只有3个. 这三个都是用来预防错误或者进行提醒的,分别是:

1.Override
2.Deprecated
3.Suppresswarnings

需要注意,JDK5(另一个说法,Tiger)实际上并没有许多内置注解;相反,它允许核心Java支持注解特性的能力. JSR-175中严格规定它用来定义元数据功能. 需要由程序员编写自定义的注解类型,其他JSR标准也编写了一系列标准注解类型. 下面将用实例来深入讲解这三个简单注解.

Override 注解

Override 注解指明被注解的方法需要覆写超类中的方法.

如果某个方法使用了该注解,却没有覆写超类中的方法(比如大小写写错了,或者参数错了,或者是子类自己定义的方法),编译器就会生成一个错误.

(注意: JRE5中实现接口中的方法时不能使用Override注解,JRE6允许了,很多时候JRE5会报这个错).

示例1演示了覆写注解:

Java注解示例1:

复制代码 代码如下:

public class Test_Override {
 @Override
 public String toString() {
    return super.toString() + "测试使用 'Override' 注解";
 }
}

如果出现方法名字拼写错误会发生什么? 例如,如果你将toString方法改名为"tostring"(全小写),编译时就会得到类似下面这样的出错信息:

复制代码 代码如下:

Compiling 1 source file to D:tempNew Folder (2)
                              TestJavaApplication1buildclasses
D:tempNew Folder (2)TestJavaApplication1srctest
   myannotationTest_Override.java:24: method does not override
                a method from its superclass
@Override
1 error
BUILD FAILED (total time: 0 seconds)

当然,Eclipse就会直接报红叉.现在IDE发展的很好用,初学者不应该去折腾JDK的命令行了.

Deprecated 注解

这个注解表明如果程序调用一个废弃的(Deprecated,废弃的,过时的)元素时,编译器应该显示警告信息. 示例2显示了如何使用Deprecated 注解.

Java注解示例2

首先,创建一个类,并像下面这样将某个方法标明为 废弃:

复制代码 代码如下:

public class Test_Deprecated {
   @Deprecated
   public void doSomething() {
      System.out.println("测试使用 弃用 注解: 'Deprecated'");
   }
}

接着,尝试从另一个类调用这个方法:

复制代码 代码如下:

public class TestAnnotations {
   public static void main(String arg[]) throws Exception {
      new TestAnnotations();
   }
   public TestAnnotations() {
   Test_Deprecated t2=new Test_Deprecated();
   t2.doSomething();
}

本例中的doSomething()方法被声明为废弃的方法. 因此,一般情况下不应该调用这个方法. 在编译Test_Deprecated.java 文件时是不会有警告消息的. 但在编译 TestAnnotations.java 时编译器就会给出类似这样的警告信息(Eclipse 会有警告):

复制代码 代码如下:

Compiling 1 source file to D:tempNew Folder
(2)TestJavaApplication1buildclasses
D:tempNew Folder
(2)TestJavaApplication1srctestmyannotation
    TestAnnotations.java:27:
warning: [deprecation] doSomething() in
test.myannotation.Test_Deprecated has been deprecated
t2.doSomething();
1 warning

Suppresswarnings 注解

这个注解告诉编译器应该屏蔽带注解的元素和所有子元素的警告信息. 会压制一个元素集和子元素的所有警告信息. 比如,假设你在一个class上使用了Suppresswarnings 注解压住一个警告,在它的一个方法上用Suppresswarnings 注解来压制另一个警告,则两种警告都会在方法级别被压制住. 请参见示例3.

Java注解示例3:

复制代码 代码如下:

public class TestAnnotations {
   public static void main(String arg[]) throws Exception {
      new TestAnnotations().doSomeTestNow();
   }
   @SuppressWarnings({"deprecation"})
   public void doSomeTestNow() {
      Test_Deprecated t2 = new Test_Deprecated();
      t2.doSomething();
   }
}

在本例中,使用 @SuppressWarnings压住了示例2中所示的deprecation警告信息. 因为该方法的这类警告被压住了,所以你不会再看到"deprecation"警告.

注意: 在最内层的元素上使用该注解是比较好的. 因此,如果你只想在一个特定的方法上压制一个警告,你应该在方法上标注,而不是在类上使用注解.

元注解(Meta-Annotations,Java注解类型)

元注解,实际上被称为注解的注解,包含四种类型. 分别是:

1.Target
2.Retention
3.Documented
4.Inherited

Target 注解

Target注解表明注解类型适用于哪种目标元素. 它包含下面的枚举类型值:

1.@Target(ElementType.TYPE)  —— 可以适用于任何类的元素
2.@Target(ElementType.FIELD)  —— 只适用于字段或属性
3.@Target(ElementType.METHOD)  —— 只适用于方法的注解
4.@Target(ElementType.PARAMETER)  —— 只适用于方法的参数
5.@Target(ElementType.CONSTRUCTOR) —— 只适用于构造函数
6.@Target(ElementType.LOCAL_VARIABLE) —— 只适用于局部变量
7.@Target(ElementType.ANNOTATION_TYPE) —— 指明声明类型本身是一个注解类型

示例4演示了Target 注解:

Java注解示例4

首先,定义了一个名为Test_Target的注解类型,带上 @Target元注解,如下所示:

复制代码 代码如下:

@Target(ElementType.METHOD)
public @interface Test_Target {
   public String doTestTarget();
}

接下来,创建一个类,它将使用Test_Target注解:

复制代码 代码如下:

public class TestAnnotations {
   public static void main(String arg[]) {
      new TestAnnotations().doTestTarget();
   }
   // 在方法上使用注解,OK.
   // 中间也可以不换行,换2行之类,Java忽略多余的换行
   @Test_Target(doTestTarget="Hello World !")
   public void doTestTarget() {
      System.out.printf("Testing Target annotation");
   }
}

@Target(ElementType.METHOD) 注解表明该注解类型只能被用来注解方法. 如果你编译这段代码,不会显示警告消息. 但是,如果将这个注解声明到一个字符串变量上,会发生什么呢? 就像下面这样:

复制代码 代码如下:

public class TestAnnotations {
   // 这是错误的做法,编译不会通过,因为注解的Level不对.
   // 元注解指明了只能注解方法,就不能用来注解属性
   @Test_Target(doTestTarget="Hello World !")
   private String str;
   public static void main(String arg[]) {
      new TestAnnotations().doTestTarget();
   }
   public void doTestTarget() {
      System.out.printf("Testing Target annotation");
   }
}

唯一的变化就是注解声明从方法级转向字段级,这是不正确的. 因为你已经定义了注解   @Test_Target 只适用在方法级,如果你尝试编译这个类,你可能会得到这样的错误信息:

复制代码 代码如下:

"TestAnnotations.java":
D:R_AND_DTestAnnotationsrctestmyannotation
   TestAnnotations.java:16:
annotation type not applicable to this kind of declaration at line
16, column 0
@Test_Target(doTestTarget="Hello World !")
^
Error in javac compilation

http://www.jmfq.cn/news/5008681.html

相关文章:

  • 武安网站建设价格/品牌营销策划方案
  • 新手建立企业网站流程/百度平台联系方式
  • 做ppt用什么网站好/安徽百度seo公司
  • 做镜像网站/成都有实力的seo团队
  • 福永网站推广/谷歌seo优化技巧
  • 手机app网站/爱站长尾词挖掘工具
  • 我的世界外国做图网站/优化设计答案大全英语
  • 制作相册怎么做/seo搜索引擎优化原理
  • 网站建设丶金手指C排名15/免费推广app软件下载
  • 泰安做网站建设的公司/宽带营销策略
  • 一搜同志网站建设电话/外包公司是正规公司吗
  • 网站开发课程知识点总结/白城seo
  • 第寒网站建设/品牌营销策略分析
  • 个人网站在那建设/信息推广
  • 哪个旅游网站规划好/经典的软文广告
  • 物业公司网站设计/seo网站优化培训多少价格
  • 网站首页介绍/seo是网络优化吗
  • 做网站收录真的假的/百度做广告推广怎么样
  • 做物流网站/查询seo
  • 上海闸北城市建设有限公司网站/推广形式有哪几种
  • 90设计官方网站/引流推广的句子
  • 西安抖音运营/河南整站百度快照优化
  • 宁波网站建设相信荣胜网络/seo优化服务是什么意思
  • 网站推广机构/广告网络推广怎么做
  • 如何本地搭建自己的网站/属性词 关键词 核心词
  • 查法人信息的网站/网站链接提交
  • 南宁网站建设醉懂网络/百度关键词排名神器
  • 织梦怎么修改网站标题/微信如何投放广告
  • 网站有哪些区别是什么/文军seo
  • 北京建筑网/seo是什么牌子