歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java枚舉在Android項目應用

今天修復一個公司很早以前的Android應用功能,裡面的代碼邏輯已經完全錯亂,然後發現返回的數據完全不對了。然後修復了整整兩天。然後我重新整理了一遍,重構就算不上了。然後就用上了枚舉。

什麼是枚舉?我以前也不懂,當時我看見公司的項目中使用了枚舉當做項目一個控制,比如修改已經寫好的app然後為一些手機廠商做定制版。可能要去掉廣告,還有跳轉到商店url都不同,特別是國內基本都沒有google play。我們為了避免以後的修改,就會寫個枚舉來控制它。

Ubuntu 14.04 x64配置Android 4.4 kitkat編譯環境的方法 http://www.linuxidc.com/Linux/2014-05/101148.htm

Ubuntu 12.04搭建Android開發環境 http://www.linuxidc.com/Linux/2012-09/69961.htm

Ubuntu 14.04 配置 Android SDK 開發環境 http://www.linuxidc.com/Linux/2014-05/101039.htm

64位Ubuntu 11.10下Android開發環境的搭建(JDK+Eclipse+ADT+Android SDK詳細) http://www.linuxidc.com/Linux/2013-06/85303.htm

Ubuntu 12.10 x64 安裝 Android SDK http://www.linuxidc.com/Linux/2013-03/82005.htm

Java枚舉在Struts2中的應用  http://www.linuxidc.com/Linux/2012-02/53808.htm

public enum Market {
 
 Default,linuxidc(){
  @Override
  public String getMarketUrl() {
   return "http://play.linuxidc.com";//linuxidc market url
  }
 },androidj(){
  @Override
  public boolean isShouldAd(){
   return false;
  }
  @Override
  public String getMarketUrl() {
   return "http://play.androidj.com";//androidj market url
  }
 },OneTouch(){
  @Override
  public String getMarketUrl() {
   return "http://play.linuxidc.com";
  }
 };
 
 
 public boolean isShouldAd(){
  return true;
 }
 
 public String getMarketUrl(){
  return "http:\\googleplay....";//google play url
 }
}

通過上面的例子就大概了解了一些java枚舉在android的基本使用。為了了解java枚舉的原理,我寫了一個很常用的紅綠燈例子。下面是用枚舉的代碼:

public enum TrafficLight {

 red(45) {
  @Override
  public TrafficLight nextLamp() {
   return green;
  }
 },
 green(30) {
  @Override
  public TrafficLight nextLamp() {
   return yellow;
  }
 },
 yellow(3) {
  @Override
  public TrafficLight nextLamp() {
   return red;
  }
 };

 private int time;

 private TrafficLight(int time) {
  this.time = time;
 };

 public abstract TrafficLight nextLamp();

 public int getTime() {
  return this.time;
 }
}

然後是普通class模擬enum的代碼:

public abstract class TrafficLight {
 

 public static final TrafficLight red  = new TrafficLight(45){
  @Override
  public TrafficLight nextLamp() {
   return green;
  }
 };
 public static final TrafficLight green  = new TrafficLight(30) {
  @Override
  public TrafficLight nextLamp() {
   return yellow;
  }
 };
 
 public static final TrafficLight yellow  = new TrafficLight(3) {
  @Override
  public TrafficLight nextLamp() {
   return red;
  }
 };

 private int time;

 private TrafficLight(int time) {
  this.time = time;
 };

 public abstract TrafficLight nextLamp();

 public int getTime() {
  return this.time;
 }
}

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-06/103065p2.htm

Copyright © Linux教程網 All Rights Reserved