枚举和注解

原创 2018年04月16日 20:03:42

一、枚举类的定义和使用以及常用的两个方法

package com.xijian.java;

public class TestEnum {
	public static void main(String[] args) {
		Season Spring = Season.SPRING;
		System.out.println(Spring);
		//enum类的values()方法,将此类型枚举类中的所有对象返回至一个该类型的一个数组中
		Season[] s1 = Season.values();
		for(int i = 0;i<s1.length;i++) {
			System.out.println(s1[i]);
		}
		//enum类的valueof(String name);要求传入的String类型的为枚举类对象的名字
		//否则报java.lang.IllegalArgumentException异常
		Season Summer = Season.valueOf("SUMMER");
		System.out.println(Summer);
		
		
		
		
	}
}
enum Season{
	SPRING("春天","春暖花开"),
	SUMMER("夏天","夏日炎炎"),
	AUTUMN("秋天","秋高气爽"),
	WINTER("冬天","白雪皑皑");
	private final String seasonName;
	private final String seasonDesc;

	private Season(String seasonName,String seasonDesc) {
		this.seasonName = seasonName;
		this.seasonDesc = seasonDesc;
	}

	public String getSeasonName() {
		return seasonName;
	}
	public String getSeasonDesc() {
		return seasonDesc;
	}
	@Override
	public String toString() {
		return "Season [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]";
	}

}

二、让枚举类实现接口

实现接口的方式与普通类一样,enum name implements interfaceA{}

可以在每个类中的每个枚举类对象声明后加一个代码块 在代码块中实现对抽象方法的重写,可以让每个对象执行的效果不同,相当于让每个对象重写抽象方法。

三注解 Annotation

1)JDK自带的常用注解

@Override:限定重写父类方法,该注解只能用于方法

@Deprecated:用于表示某个程序元素(类、方法)已过时

@SuppressWarnings:抑制编译器警告

2)JDK5.0提供了专门在注解上的注解类型,分别是:

@Retention

@Retention: 只能用于修饰一个 Annotation 定义, 用于指定该 Annotation 可以保留多长时间, @Rentention 包含一个 RetentionPolicy 类型的成员变量, 使用 @Rentention 时必须为该 value 成员变量指定值:


RetentionPolicy.SOURCE: 编译器直接丢弃这种策略的注释
RetentionPolicy.CLASS: 编译器将把注释记录在 class 文件中. 当运行 Java 程序时, JVM 不会保留注解。 这是默认值
RetentionPolicy.RUNTIME:编译器将把注释记录在 class 文件中. 当运行 Java 程序时, JVM 会保留注释. 程序可以通过反射获取该注释

@Target

@Target: 用于修饰 Annotation 定义, 用于指定被修饰的 Annotation 能用于修饰哪些程序元素. @Target 也包含一个名为 value 的成员变量.

@Documented

@Documented: 用于指定被该元 Annotation 修饰的 Annotation 类将被 javadoc 工具提取成文档.
定义为Documented的注解必须设置Retention值为RUNTIME。

@Inherited

@Inherited: 被它修饰的 Annotation 将具有继承性.如果某个类使用了被 @Inherited 修饰的 Annotation, 则其子类将自动具有该注解
实际应用中,使用较少

java 课件 数组、枚举及注解

  • 2010年12月15日 23:04
  • 369KB
  • 下载

Support Annotations注解介绍以及自定义注解代替枚举

Android支持Java默认的那些注解,同时通过Support Annotations也额外提供了很多注解,了解并熟练使用这些注解能够让你的代码更加严谨,结构更加清晰、架构更易维护...
  • gengqiquan
  • gengqiquan
  • 2017-04-15 17:33:06
  • 3456

优先使用注解,慎用枚举

除了枚举,我们其实还可以用更轻量的注解
  • My_TrueLove
  • My_TrueLove
  • 2017-04-23 17:02:46
  • 3321

Android中使用注解替代枚举

枚举最大的作用是提供了类型安全。为了弥补Android平台不建议使用枚举的缺陷,官方推出了两个注解,IntDef和StringDef,用来提供编译期的类型检查。 首先,引入依赖包: compi...
  • hp910315
  • hp910315
  • 2016-08-07 18:21:58
  • 3134

Android 从枚举到注解最佳实践

背景前几天看到秋百万的一篇文章Android 中的 Enum 到底占多少内存?该如何用?,其实我对这个东西还是很敏感的,因为最近我就在Android的项目中就用到了一个枚举类。其实不是不知道枚举的坏处...
  • sbsujjbcy
  • sbsujjbcy
  • 2016-05-01 22:45:56
  • 3213

枚举和注解(Enum and Annotation)

Java 1.5发行版本新增了两个引用类型家族:枚举类型(Enumerate类)和注解类型(Annotation接口)。...
  • Laneruan
  • Laneruan
  • 2017-08-15 22:29:44
  • 356

优雅编程之这样使用枚举和注解,你就“正常”了(二十九)

开心一笑提出问题项目中如何使用枚举和注解???解决问题用enum替换int常量例如:下面是公司项目的一个标准的enum实例。package com.evada.de.common.enums;/** ...
  • huangwenyi1010
  • huangwenyi1010
  • 2016-10-06 19:58:13
  • 943

反射获取枚举上的注解

关于反射获取枚举上的信息,javaSE的jdk相关API里面并没有提供方法,直接获取也只能获取到enum类上的注解,上网搜了半天,中文没搜到解决方法结果,感觉太坑爹了,于是记录且分享如下: 一、前言...
  • lufeng20
  • lufeng20
  • 2013-04-22 16:29:42
  • 5271

springMVC 注解+枚举方式实现权限控制

springMVC注解方式实现权限思路: 1.用户登录时将权限表存入session,功能值用2的n次方累加.如:删除的修改的权限值为1,删除的权限值为2,增加的权限值为4,验证时使用:总值&权限值==...
  • zouweibin_jy
  • zouweibin_jy
  • 2014-12-18 18:23:31
  • 1541

java之注解、枚举理解(高效java之注解、枚举)

* enum枚举和注解的学习笔记 * 枚举测试用例-->testEnumClass * 枚举类型-->有一组固定的常量组成合法值的类型 * 枚举类型提供了编译时的类型安全 * 枚举天生就是...
  • undergrowth
  • undergrowth
  • 2015-02-06 23:46:20
  • 1974
收藏助手
不良信息举报
您举报文章:枚举和注解
举报原因:
原因补充:

(最多只允许输入30个字)