A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© Teemo_Mann 中级黑马   /  2014-4-16 23:12  /  800 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在张老师的视频中,讲到枚举时举到这么一个例子
关于用一个普通类表示一个星期的枚举
  1. class WeekDay{
  2.         private WeekDay(){}
  3.         public final static WeekDay SUN = new WeekDay();
  4.         public final static WeekDay MON = new WeekDay();

  5.         public WeekDay nextDay(){
  6.                         if(this == SUN){
  7.                                 return MON;
  8.                         }
  9.                                 return SUN;
  10.                         }
  11. }
复制代码

改用抽象类和匿名函数
  1. abstract class WeekDay{
  2.         private WeekDay(){}
  3.         public final static WeekDay SUN = new WeekDay(){

  4.                 @Override
  5.                 public WeekDay nextDay() {
  6.                         // TODO Auto-generated method stub
  7.                         return MON;
  8.                 }
  9.                
  10.                
  11.         };
  12.         public final static WeekDay MON = new WeekDay(){

  13.                 @Override
  14.                 public WeekDay nextDay() {
  15.                         // TODO Auto-generated method stub
  16.                         return SUN;
  17.                 }
  18.                
  19.         };

  20.         public abstract WeekDay nextDay();
  21.        
  22. }
复制代码
只是为了修改多个if else就进行修改这个匿名函数,这样写我觉得和原先的差别没有多大,如果单单只是为了方便的话我觉得两段代码写起来还要if else比较方便,是不是这里面还有别的玄机呢


评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

您需要登录后才可以回帖 登录 | 加入黑马