在张老师的视频中,讲到枚举时举到这么一个例子
关于用一个普通类表示一个星期的枚举
- class WeekDay{
- private WeekDay(){}
- public final static WeekDay SUN = new WeekDay();
- public final static WeekDay MON = new WeekDay();
- public WeekDay nextDay(){
- if(this == SUN){
- return MON;
- }
- return SUN;
- }
- }
复制代码
改用抽象类和匿名函数
- abstract class WeekDay{
- private WeekDay(){}
- public final static WeekDay SUN = new WeekDay(){
- @Override
- public WeekDay nextDay() {
- // TODO Auto-generated method stub
- return MON;
- }
-
-
- };
- public final static WeekDay MON = new WeekDay(){
- @Override
- public WeekDay nextDay() {
- // TODO Auto-generated method stub
- return SUN;
- }
-
- };
- public abstract WeekDay nextDay();
-
- }
复制代码 只是为了修改多个if else就进行修改这个匿名函数,这样写我觉得和原先的差别没有多大,如果单单只是为了方便的话我觉得两段代码写起来还要if else比较方便,是不是这里面还有别的玄机呢
|