ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();
//pt.getActualTypeArguments()获取的是泛型的数组,根据实体泛型所在位置取
Class modelClass = (Class) pt.getActualTypeArguments()[0];
//反射获取id的实际类型进行处理
public Object cast(Object id) {
ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();
Class modelClass = (Class) pt.getActualTypeArguments()[1];
Field id1 = null;
try {
id1 = modelClass.getDeclaredField("id");
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
Class<?> type = id1.getType();
if (type.getName().equals("java.lang.Long")) {
id = Long.parseLong(id.toString());
} else {
id = id.toString();
}
return id;
}