Java 如何发现是否已为Orika中的两个类创建了映射器?
因此,我正在编写一个远程通信应用程序,我们正在缓慢地为DTO构建映射程序。很快就会有100多个,但现在我们有3个。我们希望将所有消息发送到映射器,但当我们发送到映射器时,Java 如何发现是否已为Orika中的两个类创建了映射器?,java,orika,Java,Orika,因此,我正在编写一个远程通信应用程序,我们正在缓慢地为DTO构建映射程序。很快就会有100多个,但现在我们有3个。我们希望将所有消息发送到映射器,但当我们发送到映射器时,Orika不知道,它会抛出一个异常 我需要一个.isMapperAvailable(class,class)方法,但找不到。我确实找到了一个.existsRegisteredMapper(Type,Type),但无法理解它是如何工作的。有什么帮助吗?我想你可以这样使用它: MapperFactory mapperFactory
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);
MapperFactory MapperFactory=newdefaultmapperfactory.Builder().build();
ClassMapBuilderMap=mapperFactory.classMap(Foo.class,Bar.class);
类型fooType=map.getAType();
类型barType=map.getBType()
boolean exists=mapperFactory.existsRegisteredMapper(fooType,barType,false);
现有的注册标签()方法存在一个缺陷。
假设您希望为A
到B
和B
到A
创建不同类型的映射。
在这种情况下,此方法对两个方法调用都返回true:
mapperFactory.existsRegisteredMapper(A, B, true);
mapperFactory.existsRegisteredMapper(B, A, true);
这确实有效,但相当混乱。感谢您的输入,但我希望有更好的东西…您不需要创建类映射来获取类的类型,只需使用TypeFactory.valueOfBingo!this.mf.existsRegisteredMapper(TypeFactory.valueOf(from.getClass()),TypeFactory.valueOf(to),false);这很有效。谢谢@SidiMohamed!