我正在编写一个Map<Integer, List<String>>
类型的对象,并试图将其读回。我还尝试将其包装在pojo中,但仍然无法正常工作。
欣赏是否有人可以与Hollow分享如何获取任何Collection / Map类的知识。这是我的包装纸:-
import java.util.Map;
public class MapWrapper<K, V> {
public final Map<K, V> map;
public MapWrapper(Map<K, V> map) {
this.map = map;
}
}
这是我的测试用例(在initializeTypeState行上测试失败):-
import com.netflix.hollow.api.codegen.HollowAPIGenerator;
import com.netflix.hollow.api.objects.generic.GenericHollowObject;
import com.netflix.hollow.core.read.dataaccess.HollowDataAccess;
import com.netflix.hollow.core.write.HollowWriteStateEngine;
import com.netflix.hollow.core.write.objectmapper.HollowObjectMapper;
import com.netflix.hollow.test.HollowWriteStateEngineBuilder;
import com.netflix.hollow.test.consumer.TestAnnouncementWatcher;
import com.netflix.hollow.test.consumer.TestBlobRetriever;
import com.netflix.hollow.test.consumer.TestHollowConsumer;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CollectionsReadTests {
@Test
public void generateMapClasses() throws IOException {
MapWrapper<Integer, String> testMap = new MapWrapper(new HashMap<>());
HollowWriteStateEngine writeEngine = new HollowWriteStateEngine();
HollowObjectMapper mapper = new HollowObjectMapper(writeEngine);
mapper.initializeTypeState(testMap.getClass());
HollowAPIGenerator generator =
new HollowAPIGenerator.Builder().withAPIClassname("CollectionAPI")
.withPackageName("com.test.hollow.api")
.withDataModel(writeEngine)
.withDestination("/tmp/hollow/")
.build();
generator.generateSourceFiles();
}
}
答案 0 :(得分:0)
Hollow无法知道您的地图是否持有<Integer, String>
,因为 class 已传递给initializeTypeState
。
如果您更改MapWrapper
类,那么该类将不再起作用。
例如
import java.util.Map;
public class MapWrapper {
public final Map<Integer, String> map;
public MapWrapper(Map<Integer, String> map) {
this.map = map;
}
}