我如何才能发现是否已在 Orika 中为两个 类 创建了映射器?

How can I discover if a mapper has been created for two classes in Orika?

所以我正在编写一个远程信息处理应用程序,我们正在慢慢地为 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() 方法存在一处缺陷。 假设您想要 ABBA 的不同类型映射。 在这种情况下,此方法 returns 对于两个方法调用都是正确的:

mapperFactory.existsRegisteredMapper(A, B, true);

mapperFactory.existsRegisteredMapper(B, A, true);