枚举类中根据key值获取value的方式

枚举类中根据key值获取value的方式
动物枚举类(AnimalEnum类)
package com.zxg.design_pattern.strategy.demo4;

/**
 * @ClassName AnimalEnum
 * @Description TOD0
 * author axx
 * Date 2021/12/6 16:32
 * Version 1.0
 **/
public enum  AnimalEnum {
    DOG(1,"哮天犬"),
    CAT(2,"大脸猫"),
    DUCK(3,"可达鸭"),
    RAT(4,"米老鼠"),
    TIGER(5,"跳跳虎");

    private final Integer key;
    private final String value;

    public Integer getKey() {
        return key;
    }

    public String getValue() {
        return value;
    }

    AnimalEnum(Integer key, String value) {
        this.key = key;
        this.value = value;
    }

    public static String getValueByKey(Integer code) {
        AnimalEnum[] animalEnums = values();
        for (AnimalEnum animal: animalEnums) {
            if (animal.getKey().equals(code)) {
                return animal.getValue();
            }
        }
        return null;
    }
}

测试类(Client4类)
package com.zxg.design_pattern.strategy.demo4;

import java.util.Scanner;

/**
 * @ClassName Client4
 * @Description TOD0
 * author axx
 * Date 2021/12/6 16:35
 * Version 1.0
 **/
public class Client4 {
    public static void main(String[] args) {
        System.out.println("请输入1 - 5 中的其中一个数字:\n");
        Scanner sc = new Scanner(System.in); //接收用户从键盘输入的字符串
        String str = sc.next();
        String animalName = AnimalEnum.getValueByKey(Integer.valueOf(str));
        System.out.println("该号码对应的动物是:" + animalName);
    }
}

测试结果:

在这里插入图片描述

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 C# ,可以通过 Enum 类型的 GetValues 方法获取枚举类型的所有,然后通过 Enum 类型的 GetName 方法获取枚举的名称。然后,使用反射获取枚举类型的 FieldInfo 对象,再使用 FieldInfo 对象的 GetValue 方法获取枚举的实际。 以下是一个示例代码: ``` using System; using System.Reflection; enum Fruit { Apple, Banana, Orange } class Program { static void Main(string[] args) { Fruit fruit = Fruit.Apple; string fruitName = fruit.ToString(); // 获取枚举的名称 FieldInfo fieldInfo = typeof(Fruit).GetField(fruitName); // 获取枚举的 FieldInfo 对象 object[] attrs = fieldInfo.GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), false); // 获取枚举的 DescriptionAttribute 属性 string fruitDescription = (attrs.Length > 0 ? ((System.ComponentModel.DescriptionAttribute)attrs[0]).Description : fruitName); // 获取枚举的描述 Console.WriteLine(fruitDescription); // 输出“Apple” } } ``` 在这个示例,我们首先定义了一个枚举类型 Fruit,其包含三个枚举:Apple、Banana 和 Orange。然后,我们定义了一个 fruit 变量,将其设置为 Fruit.Apple。接下来,我们使用 fruit.ToString() 方法获取 fruit 变量的名称,并使用 typeof(Fruit).GetField(fruitName) 方法获取 fruit 变量的 FieldInfo 对象。然后,我们使用 FieldInfo 对象的 GetCustomAttributes 方法获取 fruit 变量的 DescriptionAttribute 属性,如果存在该属性,则获取,否则返回 fruit 变量的名称。最后,我们输出 fruit 变量的描述。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值