Java编程技巧
来源:互联网 发布:akka java教程 编辑:程序博客网 时间:2024/05/29 15:35
一个模仿 Enum 的类:
public class Weekday {private Weekday() {}public static final Weekday MON = new Weekday();public static final Weekday TUE = new Weekday();public static final Weekday WEN = new Weekday();public static final Weekday THU = new Weekday();public static final Weekday FRI = new Weekday();public static final Weekday SAT = new Weekday();public static final Weekday SUN = new Weekday();public Weekday nextDay() {if(this == MON)return TUE;else if(this == TUE)return WEN;else if(this == WEN)return THU;else if(this == THU)return FRI;else if(this == FRI)return SAT;else if(this == SAT)return SUN;elsereturn MON;}@Overridepublic String toString() {if(this == MON)return "MON";else if(this == TUE)return "TUE";else if(this == WEN)return "WEN";else if(this == THU)return "THU";else if(this == FRI)return "FRI";else if(this == SAT)return "SAT";elsereturn "SUN";}}
看到 nextDay 和 toString 方法里的 多个 If 真的很蛋疼, 可以改为如下实施:
public abstract class Weekday {private Weekday() {}public static final Weekday MON = new Weekday(){@Overridepublic Weekday nextDay() {return TUE;}@Overridepublic String toString() {return "MON";}};public static final Weekday TUE = new Weekday(){@Overridepublic Weekday nextDay() {return WEN;}@Overridepublic String toString() {return "TUE";}};public static final Weekday WEN = new Weekday(){@Overridepublic Weekday nextDay() {return THU;}@Overridepublic String toString() {return "WEN";}};public static final Weekday THU = new Weekday(){@Overridepublic Weekday nextDay() {return FRI;}@Overridepublic String toString() {return "THU";}};public static final Weekday FRI = new Weekday(){@Overridepublic Weekday nextDay() {return SAT;}@Overridepublic String toString() {return "FRI";}};public static final Weekday SAT = new Weekday(){@Overridepublic Weekday nextDay() {return SUN;}@Overridepublic String toString() {return "SAT";}};public static final Weekday SUN = new Weekday(){@Overridepublic Weekday nextDay() {return MON;}@Overridepublic String toString() {return "SUN";}};public abstract Weekday nextDay();}
看上面就美观多了!
- Java Applet编程技巧
- JAVA编程规范技巧
- Java编程技巧
- Java编程小技巧
- Java、Android编程技巧
- java 编程小技巧
- Java编程小技巧
- java高级编程技巧
- java中编程技巧
- java编程技巧
- java 编程技巧
- Java 编程小技巧集锦
- Java编程技巧(信号量,管道)
- Java编程技巧:列表排序
- Java数据库编程中的技巧
- Java数据库编程中的技巧
- Java数据库编程中的技巧
- Java编程技巧(信号量,管道)
- POJ 1873 The Fortified Forest(凸包+枚举)
- source insight 注册码
- 如何写查看数据库中有哪些触发器、视图、表
- 深搜:A Knight's Journey
- MySQL 管理工具:Navicat for MySQL 8.0.19 中文版(破解版)
- Java编程技巧
- 网站性能并发测试工具
- 委托与事件
- poj 1753 翻转棋盘
- 最大流、最小费用最大流【模板】
- Android 性能优化的一些方法(转)
- POJ 2528 Mayor's posters 线段树(成段更新+离散化)
- ubuntu10.04 安装lamp环境
- V2中已废弃或暂未支持的V1接口