java枚举转化数值_是否可以将数值赋给Java中的枚举?

问题

Java中有可能是这样的吗?可以为Java中的枚举元素分配自定义数值吗?

public enum EXIT_CODE {

A=104, B=203;

}

#1 热门回答(159 赞)

public enum EXIT_CODE {

A(104), B(203);

private int numVal;

EXIT_CODE(int numVal) {

this.numVal = numVal;

}

public int getNumVal() {

return numVal;

}

}

#2 热门回答(28 赞)

是,然后是文档中的一些示例:

public enum Planet {

MERCURY (3.303e+23, 2.4397e6),

VENUS (4.869e+24, 6.0518e6),

EARTH (5.976e+24, 6.37814e6),

MARS (6.421e+23, 3.3972e6),

JUPITER (1.9e+27, 7.1492e7),

SATURN (5.688e+26, 6.0268e7),

URANUS (8.686e+25, 2.5559e7),

NEPTUNE (1.024e+26, 2.4746e7);

// in kilograms

private final double mass;

// in meters

private final double radius;

Planet(double mass, double radius) {

this.mass = mass;

this.radius = radius;

}

private double mass() { return mass; }

private double radius() { return radius; }

// universal gravitational

// constant (m3 kg-1 s-2)

public static final double G = 6.67300E-11;

double surfaceGravity() {

return G * mass / (radius * radius);

}

double surfaceWeight(double otherMass) {

return otherMass * surfaceGravity();

}

public static void main(String[] args) {

if (args.length != 1) {

System.err.println("Usage: java Planet ");

System.exit(-1);

}

double earthWeight = Double.parseDouble(args[0]);

double mass = earthWeight/EARTH.surfaceGravity();

for (Planet p : Planet.values())

System.out.printf("Your weight on %s is %f%n",

p, p.surfaceWeight(mass));

}

}

#3 热门回答(10 赞)

假设EXIT_CODE指的是System . exit(exit_code),那么你可以这样做

enum ExitCode

{

NORMAL_SHUTDOWN ( 0 ) , EMERGENCY_SHUTDOWN ( 10 ) , OUT_OF_MEMORY ( 20 ) , WHATEVER ( 30 ) ;

private int value ;

ExitCode ( int value )

{

this . value = value ;

}

public void exit ( )

{

System . exit ( value ) ;

}

}

然后,你可以将以下内容放在代码中的适当位置

ExitCode . NORMAL_SHUTDOWN . exit ( ) '

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值