PropertyValueParser { public Enum<?> parseEnum(String s, Class<?> enumClass) { for (Object enumValueObj : enumClass.getEnumConstants()) { Enum<?> enumValue = (Enum<?>) enumValueObj; if (enumValue.name().equals(s)) return enumValue; } log.warn("Enum constant '" + s + "' not found in enum: " + enumClass); return null; }  Boolean parseBoolean(String s); Integer parseInteger(String s); Float parseFloat(String s); URL parseURL(String s); Enum<?> parseEnum(String s, Class<?> enumClass);  }
@Test public void parseEnum() { assertEquals(PropertyType.STRING, parser.parseEnum("STRING", PropertyType.class)); assertNull(parser.parseEnum("X", PropertyType.class)); assertNull(parser.parseEnum(null, PropertyType.class)); }