首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用方法java

调用方法java
EN

Stack Overflow用户
提问于 2022-01-29 18:19:37
回答 2查看 71关注 0票数 -2

我有一个枚举,每个枚举都必须有特定的字段,比如价格,这些字段不会被修改,我想创建一个类来获取这个字段,在这种情况下我能做什么?如何使用枚举调用类,或者我能做什么?

EN

回答 2

Stack Overflow用户

发布于 2022-01-29 18:25:02

你可以试试这个:

代码语言:javascript
运行
复制
public enum SalaryHeadMasterEnum {

    BASIC_PAY("basic pay"),
    MEDICAL_ALLOWANCE("Medical Allowance");

    private String name;

    private SalaryHeadMasterEnum(String stringVal) {
        name=stringVal;
    }
    public String toString(){
        return name;
    }

    public static String getEnumByString(String code){
        for(SalaryHeadMasterEnum e : SalaryHeadMasterEnum.values()){
            if(e.name.equals(code)) return e.name();
        }
        return null;
    }
}

现在您可以使用下面的代码按值检索Enum

代码语言:javascript
运行
复制
SalaryHeadMasterEnum.getEnumByString("Basic Pay")

使用下面的代码获取ENUM作为字符串

代码语言:javascript
运行
复制
SalaryHeadMasterEnum.BASIC_PAY.name()

使用下面的代码获取枚举的字符串值

代码语言:javascript
运行
复制
SalaryHeadMasterEnum.BASIC_PAY.toString()
票数 3
EN

Stack Overflow用户

发布于 2022-01-30 02:04:01

Answer by thakre是正确的。我将重申,更直接地讨论这个问题的具体内容。

每个枚举都必须有特定的字段,例如价格,

所以用这样的字段来定义你的枚举。

代码语言:javascript
运行
复制
enum Flavor {
    private BigDecimal price ;
}

将用于该字段的值传递给每个枚举对象的构造函数。

代码语言:javascript
运行
复制
enum Flavor {
    // Enum objects. 
    VANILLA( 2 ) , CHOCOLATE( 2 ) , LAVENDER( 4 )
    
    // Member fields.
    private int price ;

    // Constructor.
    public Flavor ( int price ) {
        this.price = price ;
    }
}

我想创建一个类来获取这个字段,在这种情况下我能做什么?

不需要再上一节课。只需在枚举上添加getter方法即可。

代码语言:javascript
运行
复制
enum Flavor {
    // Enum objects. 
    VANILLA( 2 ) , CHOCOLATE( 2 ) , LAVENDER( 4 )
    
    // Member fields.
    private int price ;

    // Constructor.
    public Flavor ( int price ) {
        this.price = price ;
    }

    // Getters. 
    public int getPrice() { return this.price ; } 
}

用法:

代码语言:javascript
运行
复制
int extendedCost = quantity * Flavor.VANILLA.getPrice() ; 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70908412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档