2

为了模拟我看到的行为,我编写了这个测试(给出了同样的错误):

@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);

}

当试图映射这个时,我得到:

com.google.code.morphia.utils.ReflectionUtils.getParameterizedClass(ReflectionUtils.java:302) 的 com.google.code.morphia.utils.ReflectionUtils.getParameterizedClass(ReflectionUtils.java:306) 的 java.lang.NullPointerException。 com.google.code.morphia.utils.ReflectionUtils.getParameterizedClass(ReflectionUtils.java:302) 上 com.google.code.morphia.utils 上的 google.code.morphia.utils.ReflectionUtils.getParameterizedClass(ReflectionUtils.java:324)。 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。在 com.google.code.morphia.mapping.MappedClass 发现(MappedClass.java:197)。(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)

我能做些什么来完成这项工作?

4

1 回答 1

0

你应该在 github 上提出问题,我会更深入地研究。

于 2013-11-15T22:35:17.087 回答