枚举enum学习
2016-03-14 09:13
381 查看
如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。
下面举个例子:
public class EnumTest1 {
public static void main(String[] args) {
ECPreferenceSettings[] values=ECPreferenceSettings.values();
for(int i=0;i<values.length;i++){
System.out.println(values[i]);
}
}
}
enum ECPreferenceSettings {
/**
* Whether is the first use of the application
*
*/
SETTINGS_FIRST_USE("com.yuntongxun.ecdemo_first_use" , Boolean.TRUE),
/**坚持云通讯登陆账号*/
SETTINGS_YUNTONGXUN_ACCOUNT("com.yuntongxun.ecdemo_yun_account" , ""),
/**检查是否需要自动登录*/
SETTINGS_REGIST_AUTO("com.yuntongxun.ecdemo_account" , ""),
/**是否使用回车键发送消息*/
SETTINGS_ENABLE_ENTER_KEY("com.yuntongxun.ecdemo_sendmessage_by_enterkey" , Boolean.TRUE),
/**聊天键盘的高度*/
SETTINGS_KEYBORD_HEIGHT("com.yuntongxun.ecdemo_keybord_height" , 0),
/**新消息声音*/
SETTINGS_NEW_MSG_SOUND("com.yuntongxun.ecdemo_new_msg_sound" , true),
/**新消息震动*/
SETTINGS_NEW_MSG_SHAKE("com.yuntongxun.ecdemo_new_msg_shake" , true),
SETTING_CHATTING_CONTACTID("com.yuntongxun.ecdemo_chatting_contactid" , ""),
/**图片缓存路径*/
SETTINGS_CROPIMAGE_OUTPUTPATH("com.yuntongxun.ecdemo_CropImage_OutputPath" , ""),
SETTINGS_APPKEY("com.yuntongxun.ecdemo_appkey" , "20150314000000110000000000000010"),
SETTINGS_TOKEN("com.yuntongxun.ecdemo_token" , "17E24E5AFDB6D0C1EF32F3533494502B"),
SETTINGS_ABSOLUTELY_EXIT("com.yuntongxun.ecdemo_absolutely_exit" , Boolean.FALSE),
SETTINGS_FULLY_EXIT("com.yuntongxun.ecdemo_fully_exit" , Boolean.FALSE),
SETTINGS_PREVIEW_SELECTED("com.yuntongxun.ecdemo_preview_selected" , Boolean.FALSE),
SETTINGS_OFFLINE_MESSAGE_VERSION("com.yuntongxun.ecdemo_offline_version" , 0),
/**设置是否是匿名聊天*/
SETTINGS_SHOW_CHATTING_NAME("com.yuntongxun.ecdemo_show_chat_name" , false),
SETTINGS_CUSTOM_APPKEY("com.yuntongxun.ecdemo_custom_appkey" , ""),
SETTINGS_CUSTOM_TOKEN("com.yuntongxun.ecdemo_custom_token" , ""),
SETTINGS_SERVER_CUSTOM("com.yuntongxun.ecdemo_setserver" , false),
SETTINGS_NOTICE_CUSTOM("com.yuntongxun.ecdemo_notice" , Boolean.FALSE);
private final String mId;
private final Object mDefaultValue;
/**
* Constructor of <code>CCPPreferenceSettings</code>.
* @param id
* The unique identifier of the setting
* @param defaultValue
* The default value of the setting
*/
private ECPreferenceSettings(String id, Object defaultValue) {
this.mId = id;
this.mDefaultValue = defaultValue;
}
/**
* Method that returns the unique identifier of the setting.
* @return the mId
*/
public String getId() {
return this.mId;
}
/**
* Method that returns the default value of the setting.
*
* @return Object The default value of the setting
*/
public Object getDefaultValue() {
return this.mDefaultValue;
}
/**
* Method that returns an instance of {@link com.yuntongxun.ecdemo.common.utils.ECPreferenceSettings} from
* its. unique identifier
*
* @param id
* The unique identifier
* @return CCPPreferenceSettings The navigation sort mode
*/
public static ECPreferenceSettings fromId(String id) {
ECPreferenceSettings[] values = values();
int cc = values.length;
for (int i = 0; i < cc; i++) {
if (values[i].mId == id) {
return values[i];
}
}
return null;
}
}
打印结果:
SETTINGS_FIRST_USE
SETTINGS_YUNTONGXUN_ACCOUNT
SETTINGS_REGIST_AUTO
SETTINGS_ENABLE_ENTER_KEY
SETTINGS_KEYBORD_HEIGHT
SETTINGS_NEW_MSG_SOUND
SETTINGS_NEW_MSG_SHAKE
SETTING_CHATTING_CONTACTID
SETTINGS_CROPIMAGE_OUTPUTPATH
SETTINGS_APPKEY
SETTINGS_TOKEN
SETTINGS_ABSOLUTELY_EXIT
SETTINGS_FULLY_EXIT
SETTINGS_PREVIEW_SELECTED
SETTINGS_OFFLINE_MESSAGE_VERSION
SETTINGS_SHOW_CHATTING_NAME
SETTINGS_CUSTOM_APPKEY
SETTINGS_CUSTOM_TOKEN
SETTINGS_SERVER_CUSTOM
SETTINGS_NOTICE_CUSTOM
下面举个例子:
public class EnumTest1 {
public static void main(String[] args) {
ECPreferenceSettings[] values=ECPreferenceSettings.values();
for(int i=0;i<values.length;i++){
System.out.println(values[i]);
}
}
}
enum ECPreferenceSettings {
/**
* Whether is the first use of the application
*
*/
SETTINGS_FIRST_USE("com.yuntongxun.ecdemo_first_use" , Boolean.TRUE),
/**坚持云通讯登陆账号*/
SETTINGS_YUNTONGXUN_ACCOUNT("com.yuntongxun.ecdemo_yun_account" , ""),
/**检查是否需要自动登录*/
SETTINGS_REGIST_AUTO("com.yuntongxun.ecdemo_account" , ""),
/**是否使用回车键发送消息*/
SETTINGS_ENABLE_ENTER_KEY("com.yuntongxun.ecdemo_sendmessage_by_enterkey" , Boolean.TRUE),
/**聊天键盘的高度*/
SETTINGS_KEYBORD_HEIGHT("com.yuntongxun.ecdemo_keybord_height" , 0),
/**新消息声音*/
SETTINGS_NEW_MSG_SOUND("com.yuntongxun.ecdemo_new_msg_sound" , true),
/**新消息震动*/
SETTINGS_NEW_MSG_SHAKE("com.yuntongxun.ecdemo_new_msg_shake" , true),
SETTING_CHATTING_CONTACTID("com.yuntongxun.ecdemo_chatting_contactid" , ""),
/**图片缓存路径*/
SETTINGS_CROPIMAGE_OUTPUTPATH("com.yuntongxun.ecdemo_CropImage_OutputPath" , ""),
SETTINGS_APPKEY("com.yuntongxun.ecdemo_appkey" , "20150314000000110000000000000010"),
SETTINGS_TOKEN("com.yuntongxun.ecdemo_token" , "17E24E5AFDB6D0C1EF32F3533494502B"),
SETTINGS_ABSOLUTELY_EXIT("com.yuntongxun.ecdemo_absolutely_exit" , Boolean.FALSE),
SETTINGS_FULLY_EXIT("com.yuntongxun.ecdemo_fully_exit" , Boolean.FALSE),
SETTINGS_PREVIEW_SELECTED("com.yuntongxun.ecdemo_preview_selected" , Boolean.FALSE),
SETTINGS_OFFLINE_MESSAGE_VERSION("com.yuntongxun.ecdemo_offline_version" , 0),
/**设置是否是匿名聊天*/
SETTINGS_SHOW_CHATTING_NAME("com.yuntongxun.ecdemo_show_chat_name" , false),
SETTINGS_CUSTOM_APPKEY("com.yuntongxun.ecdemo_custom_appkey" , ""),
SETTINGS_CUSTOM_TOKEN("com.yuntongxun.ecdemo_custom_token" , ""),
SETTINGS_SERVER_CUSTOM("com.yuntongxun.ecdemo_setserver" , false),
SETTINGS_NOTICE_CUSTOM("com.yuntongxun.ecdemo_notice" , Boolean.FALSE);
private final String mId;
private final Object mDefaultValue;
/**
* Constructor of <code>CCPPreferenceSettings</code>.
* @param id
* The unique identifier of the setting
* @param defaultValue
* The default value of the setting
*/
private ECPreferenceSettings(String id, Object defaultValue) {
this.mId = id;
this.mDefaultValue = defaultValue;
}
/**
* Method that returns the unique identifier of the setting.
* @return the mId
*/
public String getId() {
return this.mId;
}
/**
* Method that returns the default value of the setting.
*
* @return Object The default value of the setting
*/
public Object getDefaultValue() {
return this.mDefaultValue;
}
/**
* Method that returns an instance of {@link com.yuntongxun.ecdemo.common.utils.ECPreferenceSettings} from
* its. unique identifier
*
* @param id
* The unique identifier
* @return CCPPreferenceSettings The navigation sort mode
*/
public static ECPreferenceSettings fromId(String id) {
ECPreferenceSettings[] values = values();
int cc = values.length;
for (int i = 0; i < cc; i++) {
if (values[i].mId == id) {
return values[i];
}
}
return null;
}
}
打印结果:
SETTINGS_FIRST_USE
SETTINGS_YUNTONGXUN_ACCOUNT
SETTINGS_REGIST_AUTO
SETTINGS_ENABLE_ENTER_KEY
SETTINGS_KEYBORD_HEIGHT
SETTINGS_NEW_MSG_SOUND
SETTINGS_NEW_MSG_SHAKE
SETTING_CHATTING_CONTACTID
SETTINGS_CROPIMAGE_OUTPUTPATH
SETTINGS_APPKEY
SETTINGS_TOKEN
SETTINGS_ABSOLUTELY_EXIT
SETTINGS_FULLY_EXIT
SETTINGS_PREVIEW_SELECTED
SETTINGS_OFFLINE_MESSAGE_VERSION
SETTINGS_SHOW_CHATTING_NAME
SETTINGS_CUSTOM_APPKEY
SETTINGS_CUSTOM_TOKEN
SETTINGS_SERVER_CUSTOM
SETTINGS_NOTICE_CUSTOM
相关文章推荐
- Android实现全屏显示
- linux 源码包与RPM包的的区别
- Zookeeper API 和 Zkclient
- 日经春秋 20160314
- 移动数据文件到其他位置翻译mos文章 文档 ID 1543367.1
- Ajax()方法如何与后台交互
- 天声人語 20160314 夢か脅威か人工知能
- spring framework下载方法
- 在PE中,新增节,添加代码
- UVa-12186 Another Crisis (dp)
- Android中Canvas的clipRect参数Region.OP的理解
- ie调用并调试ocx、exe
- 开始学习记录
- iOS应用开发中UITableView的分割线的一些设置技巧
- java得到request
- hive 查看版本号
- c++中关于类对象的创建
- 利尔达科技集团品牌价值飙升至45.98亿元
- Activity退出的几种方式
- iOS 数据缓存的处理