【发布时间】:2013-11-14 13:11:39
【问题描述】:
为了模拟我看到的行为,我编写了这个测试(给出了同样的错误):
@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 在 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)
我能做些什么来完成这项工作?
【问题讨论】:
-
你用的是哪个版本的 Morphia?
-
你使用的是什么版本的 Morphia?
-
我使用的是 0.104 版
标签: java mongodb generics morphia