为了模拟我看到的行为,我写了这个测试(给出了同样的确切错误):
@Test
public void testListGenerics() {
@Entity
class BaseOne<T> {
@Id
ObjectId _id;
T value;
void setValue(T value) {
this.value = value;
}
}
class ListBase<ITEM> extends BaseOne<List<ITEM>> { }
class ConcreteOne extends ListBase<String> {}
ConcreteOne concreteOne = new ConcreteOne();
List<String> strings = Arrays.asList("Hello, ", "world");
concreteOne.setValue(strings);
morphia.toDBObject(concreteOne);
}
尝试映射时,我得到:
java.lang.NullPointerException at com.google.code.morphia.utils.ReflectionUtils.getParameterizedClass(ReflectionUtils.java:306) 在 com.google.code.morphia.utils.ReflectionUtils.getParameterizedClass(ReflectionUtils.java:302) 在 com.google.code.morphia.utils.ReflectionUtils.getParameterizedClass(ReflectionUtils.java:324) 在 com.google.code.morphia.utils.ReflectionUtils.getParameterizedClass(ReflectionUtils.java:302) 在 com.google.code.morphia.utils.ReflectionUtils.getParameterizedType(ReflectionUtils.java:281) 在 com.google.code.morphia.mapping.MappedField.discoverMultivalued(MappedField.java:136) 在 com.google.code.morphia.mapping.MappedField.discover(MappedField.java:96) 在 com.google.code.morphia.mapping.MappedField。(MappedField.java:76) 在 com.google.code.morphia.mapping.MappedClass.discover(MappedClass.java:197) 在 com.google.code.morphia.mapping.MappedClass。(MappedClass.java:119) 在 com.google.code.morphia.mapping.Mapper.getMappedClass(Mapper.java:225) 在 com.google.code.morphia.DatastoreImpl.getWriteConcern(DatastoreImpl.java:1346) 在com.google.code.morphia.DatastoreImpl.save(DatastoreImpl.java:934)
我可以做些什么来完成这项工作?
答案 0 :(得分:0)
你应该在github上提出一个问题,我会深入了解一下。