If i have one variable which type argument has type argument too, it throws exception
Example:
Variable:
class BasicExample {
private LazyJson<List<Pojo>> listLazyPojo = new LazyJson<>();
}
Implementation:
Field field = ReflectionUtils.getFieldRecursively(BasicExample.class, "listLazyPojo");
System.out.println((Class<?>)ReflectionUtils.getGenericTypeArgumentAt(field.getGenericType(), 0));
Where it happens:
io.yawp.driver.appengine.AppengineQueryDriver.setLazyJsonProperty(Repository, T, Field, Object);
It returns the following exception if i do a GET on this entity:
java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class
at io.yawp.driver.appengine.AppengineQueryDriver.setLazyJsonProperty(AppengineQueryDriver.java:282)
at io.yawp.driver.appengine.AppengineQueryDriver.setObjectProperty(AppengineQueryDriver.java:237)
at io.yawp.driver.appengine.AppengineQueryDriver.safeSetObjectProperty(AppengineQueryDriver.java:212)
at io.yawp.driver.appengine.AppengineQueryDriver.toObject(AppengineQueryDriver.java:204)
at io.yawp.driver.appengine.AppengineQueryDriver.objects(AppengineQueryDriver.java:71)
at io.yawp.repository.query.QueryBuilder.executeQuery(QueryBuilder.java:243)
at io.yawp.repository.query.QueryBuilder.executeQueryFirst(QueryBuilder.java:203)
at io.yawp.repository.query.QueryBuilder.first(QueryBuilder.java:194)
Workaround
created PojoList, which has one List
class PojoList {
private List<Pojo> listPojo = new ArrayList<>();
}
class BasicExample {
private LazyJson<PojoList> listLazyPojo = new LazyJson<>();
}
If i have one variable which type argument has type argument too, it throws exception Example:
Variable:
Implementation:
Where it happens: io.yawp.driver.appengine.AppengineQueryDriver.setLazyJsonProperty(Repository, T, Field, Object);
It returns the following exception if i do a GET on this entity:
Workaround created PojoList, which has one List