android枚舉的使用
❶ Android 怎麼自定義枚舉類型的值
public enum enumName
{
SUCCESS(0),
FAIL(1);
private final int mValue;
private enumName(int value)
{
mValue = value;
}
}
❷ android 靜態常量和枚舉哪個好
常量是直接編譯在代碼中的,而枚舉則是一種類,你可以通過反射根據值反查出它的枚舉形式是什麼。
枚舉定義了值的范圍,但是常量沒有。所以要根據你的實際情況選擇。
比如你有一個變數,是中國所有的省,那麼最好用枚舉,因為這些是固定不變的。在代碼里使用的時候更方便,也易懂。
❸ android intent 可以傳遞enum 嗎
android intent 可以傳遞enum
使用Intent便捷方式
這些方法是直接存取Intent所攜帶的Bundle中的數據
❹ Android 怎麼自定義枚舉類型的值
static final通常跟的是一個int類型的常數,所以有時候可以用int型代替枚舉 在有些時候需要輸出這個枚舉量的名字(比如January),上面的方法輸出的是int值,用類的話可以把名字一起輸出 總的來說前者消耗資源比較少,後者更符合枚舉的定義 枚舉的確是一個類,在JDK1.4及以前,沒有enum這個用法,那時候都是使用類來建立的,在《java編程思想》中介紹了一類寫法(詳見第三版的章節8.1.3群組常量);JDK5以後,enum被引入,本質上就是一個類,所以可以被繼承,總體思路和第三版這個寫法類似,只是換了個名字(《Java編程思想》第四版第19章專門講這個) 補充:我把早期的例子給出吧,你看一下,這就是早期的枚舉的方法: public final class Month{ private String name; private Month (String nm){name=nm;} public String toString(){return name;} public static final Month JAN=new Month("January"), FEB=new Month("February"), MAR=new Month("March"), APR=new Month("April"), MAY=new Month("May"), JUN=new Month("June"), JUL=new Month("July"), AUG=new Month("August"), SEP=new Month("September"), OCT=new Month("October"), NOV=new Month("November"), DEC=new Month("December"); public static final Month month[]={ JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC }; public static final Month number(int ord){ return month[ord-1]; } //main public static void main(String args[]){ Month m=Month.JAN; System.out.println(m); m=Month.number(12); System.out.println(m); System.out.println(m==Month.DEC); System.out.println(m.equals(Month.DEC)); System.out.println(Month.month[3]); System.out.println(Month.APR); } }
❺ Android 怎麼自定義枚舉類型的值
在已知可能輸入值情況下,我們常常會用到枚舉類型。在java中,怎麼自定義枚舉類型的值呢?請參考如下代碼:
[java] view plain
public enum Point {
Satisfaction(1), Dissatisfied(-1);
private final int val;
private Point(int value) {
val = value;
}
public int getValue() {
return this.val;
}
}
在調用的時候,可以用Point.Satisfaction 和Point.Dissatisfied,如下所示:
[java] view plain
Judge(mContenxt, mGuid, Point.Dissatisfied);
在方法Judge中,可以用getValue獲取枚舉的值。如下所示:
[java] view plain
public void Judge(Context context,String logGuid, Point point){
int point = point.getValue();
}
❻ 為什麼說android使用enum效率低,浪費方法數
現在不會了,新版本JDK做了優化,效率高了很多,而且使用也變方便了。
enum語法(定義):
創建枚舉類型要使用 enum 關鍵字,隱含了所創建的類型都是 java.lang.Enum 類的子類(java.lang.Enum 是一個抽象類)。枚舉類型符合通用模式 Class Enum<E extends Enum<E>>,而 E 表示枚舉類型的名稱。枚舉類型的每一個值都將映射到 protected Enum(String name, int ordinal) 構造函數中,在這里,每個值的名稱都被轉換成一個字元串,並且序數設置表示了此設置被創建的順序。
[java] view plainprint?
package com.ysm.test;
/**
* 枚舉測試類
* @author <a href="mailto:[email protected]">何明旺</a>
*/
public enum EnumTest {
MON, TUE, WED, THU, FRI, SAT, SUN;
}
這段代碼實際上調用了7次 Enum(String name, int ordinal):
[java] view plainprint?
new Enum<EnumTest>("MON",0);
new Enum<EnumTest>("TUE",1);
new Enum<EnumTest>("WED",2);
... ...
遍歷、switch 等常用操作:
對enum進行遍歷和switch的操作示例代碼:
[java] view plainprint?
public class Test {
public static void main(String[] args) {
for (EnumTest e : EnumTest.values()) {
System.out.println(e.toString());
}
System.out.println("----------------我是分隔線------------------");
EnumTest test = EnumTest.TUE;
switch (test) {
case MON:
System.out.println("今天是星期一");
break;
case TUE:
System.out.println("今天是星期二");
break;
// ... ...
default:
System.out.println(test);
break;
}
}
}
輸出結果:
[java] view plainprint?
MON
TUE
WED
THU
FRI
SAT
SUN
----------------我是分隔線------------------
今天是星期二
enum 對象的常用方法介紹:
int compareTo(E o)
比較此枚舉與指定對象的順序。
Class<E> getDeclaringClass()
返回與此枚舉常量的枚舉類型相對應的 Class 對象。
String name()
返回此枚舉常量的名稱,在其枚舉聲明中對其進行聲明。
int ordinal()
返回枚舉常量的序數(它在枚舉聲明中的位置,其中初始常量序數為零)。
String toString()
返回枚舉常量的名稱,它包含在聲明中。
static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
返回帶指定名稱的指定枚舉類型的枚舉常量。
[java] view plainprint?
public class Test {
public static void main(String[] args) {
EnumTest test = EnumTest.TUE;
//compareTo(E o)
switch (test.compareTo(EnumTest.MON)) {
case -1:
System.out.println("TUE 在 MON 之前");
break;
case 1:
System.out.println("TUE 在 MON 之後");
break;
default:
System.out.println("TUE 與 MON 在同一位置");
break;
}
//getDeclaringClass()
System.out.println("getDeclaringClass(): " + test.getDeclaringClass().getName());
//name() 和 toString()
System.out.println("name(): " + test.name());
System.out.println("toString(): " + test.toString());
//ordinal(), 返回值是從 0 開始
System.out.println("ordinal(): " + test.ordinal());
}
}
輸出結果:
[java] view plainprint?
TUE 在 MON 之後
getDeclaringClass(): com.hmw.test.EnumTest
name(): TUE
toString(): TUE
ordinal(): 1
❼ android怎麼移除枚舉
android怎麼移除枚舉用註解替換枚舉這里的替換應該來說是部分場景替換,也就是上面的非擴展場景的使用替換。
❽ 枚舉演算法的使用
枚舉類型在使用中有以下規定:
枚舉值是常量,不是變數。不能在程序中用賦值語句再對它賦值。例如對枚舉weekday的元素再作以下賦值: sun=5;mon=2;sun=mon; 都是錯誤的。
枚舉元素本身由系統定義了一個表示序號的數值,從0 開始順序定義為0,1,2…。如在weekday中,sun值為0,mon值為1, …,sat值為6。
例如:
#include<stdio.h>
int main()
{
enum weekday{sun,mon,tue,wed,thu,fri,sat };
weekday a,b,c; //將a,b,c定義為枚舉變數
a=sun;
b=mon;
c=tue;
printf(%d,%d,%d,a,b,c);
return 0;
}
運行結果為:0,1,2
枚舉值也可以用來做判斷比較。如:if(mon>sun) …
枚舉變數的值可以由程序員自己定。如:
enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat};
定義sun為7,mon為1,以後按順序加1,即wed=3。
❾ 什麼是枚舉,怎麼用
枚舉通過使用enum,可以創建一個新的類型,並且制定它可以具有的值(實際上是INT型的,雖然大多用字元來枚舉,可是這些字元都代表的是INT型的整數常量)主要的使用目的是為了增加程序的可讀性。
簡單來說,就是我們在選擇分支的時候,可以定義一個變數來確定各個分支的順序,比如0,1,2,3,4,。。但是這樣不好讀,尤其是編寫者之外的人讀,很讓人費解,這個時候可以,0.1.2,3,4.。。賦予一些實際的含義。典型的例子:
比如我們可以這樣用:
enum spectrum {red,orange,yellow,green,blue,violet};
enum spectrum color;
以上定義了color的可能值red,orange等等。
以下是應用:
int c;
color=blue;
if (color == yellow)
....;
這些都是我自己所學到,所理解的
❿ Android Context操作模式四種枚舉
Context.MODE_PRIVATE:默認操作模式,代表該文件是私有數據,創建的文件只能由調用應用程序(或共享該應用程序的所有應用程序)訪問,在該模式下,寫入的內容會覆蓋原文件的內容
Context.MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取
Context.MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入
Context.MODE_APPEND:如果文件已經存在則將數據寫入現有文件的末尾,否則就創建新文件