导航:首页 > 编程语言 > java获取枚举的值

java获取枚举的值

发布时间:2022-09-06 04:12:14

A. java 关于枚举,这段代码到底是怎样执行的

你可以把枚举当作是一种类型,比如enum Size你可以看作class Size这样的声明。
然后,SMLL("S")是什么意思呢,就相当于你在class Size这个类内部定义了这样一个常量对象:
public static final Size SMLL = new Size("S");
只不过用枚举的话这样这样的声明方式被简成SMLL("S"),这是声明枚举常量的方式,比较简单。就是说这样等于是调用了private Size(String abbreviation) {this.abbreviation = abbreviation; }这个构造函数。

B. java中的枚举如何根据数字得到文本值

把枚举转换成int型就可以了 。
枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如对枚举weekday的元素再作以下赋值: sun=5;mon=2;sun=mon; 都是错误的。
枚举元素本身由系统定义了一个表示序号的数值,从0 开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1, …,sat值为6。

String str = sun;
int week;
if(str.equals(枚举值)){
week = 0;
}

C. Java枚举类型怎么使用

举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。

1、常量的使用
在JDK1.5之前,我们定义常量都是:public static fianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
总结:
1、枚举的本质是类,在没有枚举之前,仍然可以按照java最基本的编程手段来解决需要用到枚举的地方。枚举屏蔽了枚举值的类型信息,不像在用public static final定义变量必须指定类型。枚举是用来构建常量数据结构的模板,这个模板可扩展。枚举的使用增强了程序的健壮性,比如在引用一个不存在的枚举值的时候,编译器会报错。枚举的更多用法还需要在开发中去研究创造,Java5、Java6增加了不少新的特性,技术在升级,对程序员来说就要学习,如果你热爱java的话。否则别人用到新特性的代码你看不懂,那才叫郁闷。
2、枚举在Java家族中只占了很小的一块比重,所以我在项目中用枚举的地方不是很多,毕竟,一个项目是很多人开发维护的,用一个陌生的东西,会给其他的同事造成阅读困难。所以常量大都是用public static final 来定义的。

D. java resultset 获取枚举型数据

楼上的。。mysql里有这种类型,是一种字符串类数据列类型
ENUM('value1','value2',...) 65535个成员 1或2字节
但是用的比较少。。。

你得写程序自己处理下,大概是下边这样

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class EnumTesting {
Connection connection;

Statement statement;

public EnumTesting() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager
.getConnection("jdbc:mysql://192.168.1.25/test?user=spider&password=spider");
} catch (Exception e) {
System.err.println("Unable to find and load driver");
System.exit(1);
}
}

public void doWork() {
try {
statement = connection.createStatement();
ResultSet rs = statement
.executeQuery("SHOW COLUMNS FROM enumtest LIKE 'status'");

rs.next();
String enums = rs.getString("Type");
System.out.println(enums);
int position = 0, count = 0;
String[] availableEnums = new String[10];

while ((position = enums.indexOf("'", position)) > 0) {
int secondPosition = enums.indexOf("'", position + 1);
availableEnums[count++] = enums.substring(position + 1,
secondPosition);

position = secondPosition + 1;
System.out.println(availableEnums[count - 1]);
}

rs.close();
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
Enum e = new Enum();
e.doWork();
}
}

E. java中如何将枚举值用循环输出

java中可以私用enummap来保存枚举值,示例如下:

privatestaticvoidtestEnumMap(){
//1.演示定义EnumMap对象,EnumMap对象的构造函数需要参数传入,默认是key的类的类型
EnumMap<Light,String>currEnumMap=newEnumMap<Light,String>(
Light.class);
currEnumMap.put(Light.RED,"红灯");
currEnumMap.put(Light.GREEN,"绿灯");
currEnumMap.put(Light.YELLOW,"黄灯");

//2.遍历对象
for(LightaLight:Light.values()){
System.out.println("[key="+aLight.name()+",value="
+currEnumMap.get(aLight)+"]");
}
}

F. java springmvc 页面枚举类型作为怎样查询条件并传递参数到controller

一,从controller往视图传递值,controller---->视图

1)简单类型,如int,String,直接写在controller方法的参数里,是无法传递到视图页面上的(经测试)。

(而用@RequestParam("name")注解,可以从视图上,或地址中加?name=***传递到controller方法里)

2)可以用Map<String,Object>,其键值可以在页面上用EL表达式${键值名}得到,

3)也可以用Model类对象来传递,有addAttribute(key,value)方法,其键值可以在页面上用EL表达式${键值名}得到,

如果用addAttribute(value)这个方法,会将类型名的首字母改成小写后,作为键值名传递过去,例如"ok"在页面上用${string}得到,而一个复合类对象,如User类对象,页面上用${user}得到该对象,用${user.propertyName}得到其属性,这是用Model的一大优势。
例如,model.addAttribute(newUser("my姓名","我的爱好有游泳打球"));
这样页面上就能用${user.name}和${user.hobby}打印对应属性

@RequestMapping(value={"/","/hello"})
publicStringhello(intid,Map<String,Object>map){
System.out.println(id);
System.out.println("hello");
map.put("hello","world");
return"hello";
}

@RequestMapping(value="/say")
publicStringsay(@RequestParamintid,Modelmodel){
System.out.println("say");
model.addAttribute("hello","value");
//使用Object的类型作为key,String-->string
model.addAttribute("ok");
return"hello";
}www.2cto.com

G. Java中枚举类型怎么赋值

publicenumPath{
PATH1("/home/acer/logs1"),
PATH2("/home/acer/logs2"),
PATH3("/home/acer/logs3"),
PATH4("/home/acer/logs4");

privateStringpath;

Path(Stringpath){
this.path=path;
}

publicStringgetPath(){
returnpath;
}

//测试方法
publicstaticvoidmain(String[]args){
System.out.println(Path.PATH1.getPath());
System.out.println(Path.PATH2.getPath());
System.out.println(Path.PATH3.getPath());
System.out.println(Path.PATH4.getPath());
}
}

H. Java中怎样由枚举常量的ordinal值获得枚举常量对象

enum Season {
SPRING, SUMMER, AUTUMN, WINTER;

public static Season valueOf(int ordinal) {
if (ordinal < 0 || ordinal >= values().length) {
throw new IndexOutOfBoundsException("Invalid ordinal");
}
return values()[ordinal];
}

}

I. java枚举问题

package com.ljq.test;

/**
* 枚举用法详解
*
* @author jiqinlin
*
*/
public class TestEnum {
/**
* 普通枚举
*
* @author jiqinlin
*
*/
public enum ColorEnum {
red, green, yellow, blue;
}

/**
* 枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法
*
* @author jiqinlin
*
*/
public enum SeasonEnum {
//注:枚举写在最前面,否则编译出错
spring, summer, autumn, winter;

private final static String position = "test";

public static SeasonEnum getSeason() {
if ("test".equals(position))
return spring;
else
return winter;
}
}

/**
* 性别
*
* 实现带有构造器的枚举
*
* @author jiqinlin
*
*/
public enum Gender{
//通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错
//赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;如果不赋值则不能写构造器,赋值编译也出错
MAN("MAN"), WOMEN("WOMEN");

private final String value;

//构造器默认也只能是private, 从而保证构造函数只能在内部使用
Gender(String value) {
this.value = value;
}

public String getValue() {
return value;
}
}

/**
* 订单状态
*
* 实现带有抽象方法的枚举
*
* @author jiqinlin
*
*/
public enum OrderState {
/** 已取消 */
CANCEL {public String getName(){return "已取消";}},
/** 待审核 */
WAITCONFIRM {public String getName(){return "待审核";}},
/** 等待付款 */
WAITPAYMENT {public String getName(){return "等待付款";}},
/** 正在配货 */
ADMEASUREPRODUCT {public String getName(){return "正在配货";}},
/** 等待发货 */
WAITDELIVER {public String getName(){return "等待发货";}},
/** 已发货 */
DELIVERED {public String getName(){return "已发货";}},
/** 已收货 */
RECEIVED {public String getName(){return "已收货";}};

public abstract String getName();
}

public static void main(String[] args) {
//枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值
ColorEnum colorEnum = ColorEnum.blue;
switch (colorEnum) {
case red:
System.out.println("color is red");
break;
case green:
System.out.println("color is green");
break;
case yellow:
System.out.println("color is yellow");
break;
case blue:
System.out.println("color is blue");
break;
}

//遍历枚举
System.out.println("遍历ColorEnum枚举中的值");
for(ColorEnum color : ColorEnum.values()){
System.out.println(color);
}

//获取枚举的个数
System.out.println("ColorEnum枚举中的值有"+ColorEnum.values().length+"个");

//获取枚举的索引位置,默认从0开始
System.out.println(ColorEnum.red.ordinal());//0
System.out.println(ColorEnum.green.ordinal());//1
System.out.println(ColorEnum.yellow.ordinal());//2
System.out.println(ColorEnum.blue.ordinal());//3

//枚举默认实现了java.lang.Comparable接口
System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1

//--------------------------
System.out.println("===========");
System.err.println("季节为" + SeasonEnum.getSeason());

//--------------
System.out.println("===========");
for(Gender gender : Gender.values()){
System.out.println(gender.value);
}

//--------------
System.out.println("===========");
for(OrderState order : OrderState.values()){
System.out.println(order.getName());
}
}

}

J. 用java写一个枚举类程序

packagecom.school.stereotype;
/**
*活动枚举类型
*@authorQiXuan.Chen
*/
publicenumEventStatus{
/**
*未发布。
*/
DRAFT("DRAFT","未发布"),
/**
*已发布。
*/
PUBLISHED("PUBLISHED","已发布");
/**
*活动状态的值。
*/
privateStringvalue;
/**
*活动状态的中文描述。
*/
privateStringtext;
/**
*@paramstatus活动状态的值
*@paramdesc活动状态的中文描述
*/
privateEventStatus(Stringstatus,Stringdesc){
value=status;
text=desc;
}
/**
*@return当前枚举对象的值。
*/
publicStringgetValue(){
returnvalue;
}
/**
*@return当前状态的中文描述。
*/
publicStringgetText(){
returntext;
}
/**
*根据活动状态的值获取枚举对象。
*
*@paramstatus活动状态的值
*@return枚举对象
*/
(Stringstatus){
EventStatus[]allStatus=EventStatus.values();
for(EventStatusws:allStatus){
if(ws.getValue().equalsIgnoreCase(status)){
returnws;
}
}
("status值非法,没有符合课程状态的枚举对象");
}
}

阅读全文

与java获取枚举的值相关的资料

热点内容
androidm3u8缓存 浏览:234
imphp开源知乎 浏览:706
清除网络通配符dos命令 浏览:837
鸿蒙系统怎么快速换回安卓 浏览:712
pdf绿色虚拟打印机 浏览:213
androidtab框架 浏览:147
java转php的时间戳 浏览:638
编译libstdc依赖 浏览:657
清算法人与原法人的区别 浏览:410
家庭装修下载什么app软件 浏览:575
美食博主用什么app拍视频 浏览:815
ipone手机如何加密微信 浏览:357
自来水加密阀阀帽 浏览:437
华为交换机dhcp配置命令 浏览:319
androidbitmap缩小 浏览:275
单片机串口控制灯 浏览:88
大讯云服务器安装视频 浏览:788
华为算法领先世界 浏览:658
linux路由重启 浏览:570
php的模板编程 浏览:324