关于反射和枚举

原创 2011年01月18日 15:12:00

       关于枚举:

       在某些情况下一个类的对象是有限固定的,在实现枚举类的时候要注意一些:

       1,通过private 将构造器隐藏起来

       2,把这个类的所有可能实例都使用public static final属性保存

       3,如果有必要的话,可以提供一些静态的方法,允许其他的程序根据特定参数来获取与之匹配实例

       枚举不是一个普通的类,枚举可以实现一个或者多个的接口,使用enum定义的枚举默认继承了java,lang.Enum类,

而不是继承Object类,其中java.lang.Enum实现了java.lang.Serializable和java.lang.Comparable两个接口

      枚举的构造器只能是使用private访问控制符,如果省略了起构造器的访问控制符,则默认使用private修饰:如果强制使用访问控制符

则必须使用private

      枚举类的实例必须在枚举类中显示列出,否则这个枚举类将永远不能产生实例,列出这些实例系统都会自动添加public static final

      所有的枚举类都提供一个values方法。该方法可以很方便的遍历所有枚举值。

在定义枚举时,还可以让元素类表中的元素选择使用哪个构造函数,在元素后面跟上对应的参数即可如:
public enum WeekDay{
SUN(0)//使用了带参数的构造函数,MON(1)//使用了带参数的构造函数,TUE(2)//使用了带参数的构造函数,WED,THI,FRI,SAT;
private WeekDay(){

}
private WeekDay(int a){

}
}
定义带抽象方法的枚举时,可以用内部类来实现元素的创建。如:
public enum WeekDay{
  SUN(0){
   public WeekDay nextDay(){
    return MON;
   }
  },
  MON(1){
   public WeekDay nextDay(){
    return TUE;
   }
  },
  TUE(2){
   public WeekDay nextDay(){
    return WED;
   }
  },
  WED(3){
   public WeekDay nextDay(){
    return THI;
   }
  },
  THI(4){
   public WeekDay nextDay(){
    return FRI;
   }
  },
  FRI(5){
   public WeekDay nextDay(){
    return SAT;
   }
  },
  SAT(6){
   public WeekDay nextDay(){
    return SUN;
   }
  };
  private int a;
  private WeekDay(int i){
   this.a=i;
   }
  public abstract WeekDay nextDay();
  }

枚举和简单反射

  • 2013年01月31日 15:46
  • 2KB
  • 下载

JAVA基础-反射-枚举

  • 2016年02月19日 11:59
  • 28KB
  • 下载

Android-->检测内置/外置SD卡存储卡,枚举所有挂载点(通过反射实现),监听SD卡广播

直接上重点:1:获取内置SD卡的路径, 但是判断是否有效(是否挂载), 需要用到下面检测挂载点的方法 /** * 获取内置SD卡路径 * * @return ...
  • angcyo
  • angcyo
  • 2015年05月29日 11:39
  • 3984

.NET 4.5(C#):TypeInfo类型和反射中的成员枚举

来自:http://www.cnblogs.com/mgen/archive/2012/06/24/2560234.html 先说类型中成员的枚举,传统的Type类型的成员枚举会返回pu...

黑马程序员_JAVA_枚举和反射总结

枚举的介绍 枚举: 1.      为什么要有枚举 问题:要定义星期几或者性别的变量,该怎么定义呢?假设1-7分别表示星期一到星期日,单有人可能会写成int weekday=0;...

JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程.]

类的继承 Java只支持单继承,不允许多重继承  - 一个子类只能有一个父类  - 一个父类可以派生出多个子类    子类继承了父类,就继承了父类的方法和属性。  在子类中,可以使用父...

关于枚举、反射、泛型的简单例子

一、枚举     枚举就是要让某个类型的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举是一种特殊的类,其中的每个元素都是该类的一个实例对象。定义枚举使     用的关键字是enum。...

黑马程序员--java高新技术 25--枚举,反射

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------   /*1.5 新特性总结: ...

JAVA基础加强篇——反射和枚举

一、 反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的...

Android 反射枚举Enum类型应用

网上关于反射枚举的案例似乎不多,也许是因为枚举在java里面枚举类型其实算个准类了,java编译的时候同样会生成一个enumname.Class文件,同时Enum是可以被子类直接继承的,所以有时候在反...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于反射和枚举
举报原因:
原因补充:

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