所以我正在编写一个远程信息处理应用程序,我们正在慢慢为 DTO 构建映射器。很快就会有超过 100 个,但现在我们有 3 个。我们想将所有消息发送到我们的映射器,但是当我们这样做并且Orika
不知道它时,它会引发异常。
我需要一种.isMapperAvailable(class, class)
方法,但找不到。我确实找到了一个.existsRegisteredMapper(Type, Type)
,但无法弄清楚它是如何工作的。有什么帮助吗?
我认为你可以这样使用它:
MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
ClassMapBuilder<Foo, Bar> map = mapperFactory.classMap(Foo.class, Bar.class);
Type<Foo> fooType = map.getAType();
Type<Bar> barType = map.getBType()
boolean exists = mapperFactory.existsRegisteredMapper(fooType, barType, false);
方法有一个缺陷existsRegisteredMapper()
。假设您想要对A
toB
和B
to进行不同类型的映射A
。在这种情况下,此方法对两个方法调用都返回 true:
mapperFactory.existsRegisteredMapper(A, B, true);
mapperFactory.existsRegisteredMapper(B, A, true);