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:如果文件已经存在则将数据写入现有文件的末尾,否则就创建新文件