Guava base -- Enums

Guava全文介绍地址:Google Guava
这次主要介绍是的是com.google.common.base.Enums,官网是对它的介绍就一句话。Utility methods for working with Enum instances.提供给Enum实例的实用的方法。

它的所有方法如下:

static Field	getField(Enum<?> enumValue)
返回enumValue定义的Field

static <T extends Enum<T>> Optional<T>	getIfPresent(Class<T> enumClass, String value)
根据所给类型一个optional<enum>常量,使用Enum.valueOf(java.lang.Class<T>, java.lang.String).

static <T extends Enum<T>> Converter<String,T>	stringConverter(Class<T> enumClass)
返回一个converter对象转换成sring以及给定Enum类型的值,使用Enum.valueOf(Class, String)与Enum.name().
然后大家就可以对照下面的例子来理解这个类的用法了。Enums的例子包含2个类,一个是EnumsTest.Java另一个是Gender.Java.

public class EnumsTest {

    @Test
    public void testGetField() throws NoSuchFieldException {
        Field field = Enums.getField(Gender.MALE);
        System.out.println(field);
        // result: public static final com.weimob.carl.user.service.Gender com.weimob.carl.user.service.Gender.MALE
    }

    @Test
    public void testGetIfPresent(){
        Optional<Gender> male = Enums.getIfPresent(Gender.class, Gender.MALE.name());
        Optional<Gender> male1 = Optional.of(Enum.valueOf(Gender.class, Gender.MALE.name()));
        assertThat(male,is(male1));
    }

    @Test
    public void testStringConverter(){
        Converter<String, Gender> stringGenderConverter = Enums.stringConverter(Gender.class);
        Gender male = stringGenderConverter.convert(Gender.MALE.name());
        System.out.println(male);
        // result: MALE
    }

}
下面是Gender.Java.

public enum Gender {

    MALE(1, "male"),          // 男性
    FEMALE(2, "female");      // 女性

    private Integer key;
    private String desc;

    Gender(Integer key, String desc){
        this.key = key;
        this.desc = desc;
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值