Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何发现是否已为Orika中的两个类创建了映射器?_Java_Orika - Fatal编程技术网

Java 如何发现是否已为Orika中的两个类创建了映射器?

Java 如何发现是否已为Orika中的两个类创建了映射器?,java,orika,Java,Orika,因此,我正在编写一个远程通信应用程序,我们正在缓慢地为DTO构建映射程序。很快就会有100多个,但现在我们有3个。我们希望将所有消息发送到映射器,但当我们发送到映射器时,Orika不知道,它会抛出一个异常 我需要一个.isMapperAvailable(class,class)方法,但找不到。我确实找到了一个.existsRegisteredMapper(Type,Type),但无法理解它是如何工作的。有什么帮助吗?我想你可以这样使用它: MapperFactory mapperFactory

因此,我正在编写一个远程通信应用程序,我们正在缓慢地为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);
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!