@SuppressWarnings("unchecked") public static Class<?> getForeignEntityType(com.android.pc.ioc.db.table.Foreign foreignColumn) { Class<?> result = (Class<?>) foreignColumn.getColumnField().getType(); if (result.equals(ForeignLazyLoader.class) || result.equals(List.class)) { result = (Class<?>) ((ParameterizedType) foreignColumn.getColumnField().getGenericType()) .getActualTypeArguments()[0]; } return result; }