TypeUtil { static private LocalDate parseDate(String value){ try { return LocalDate.parse(value); } catch(DateTimeException dte){ throw new IllegalArgumentException(value, dte); } } private  TypeUtil(); static String format(Object value); static Object parseOrCast(DataType dataType, Object value); static Object parse(DataType dataType, String value); static DaysSinceDate parseDaysSinceDate(LocalDate epoch, String value); static boolean equals(DataType dataType, Object value, Object referenceValue); static DataType getDataType(Object value); static DataType getDataType(Collection<?> values); static DataType getCommonDataType(DataType left, DataType right); static OpType getOpType(DataType dataType); static Object cast(DataType dataType, Object value); static V cast(Class<? extends V> clazz, Object value); static DataType getConstantDataType(Object value); static DataType getConstantDataType(String value);  }
@Test public void parseDate(){ LocalDate date = (LocalDate)TypeUtil.parse(DataType.DATE, DATE); assertEquals(DataType.DATE, TypeUtil.getDataType(date)); }