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