gpt4 book ai didi

java - 在 Orika 中定义映射时真的可以使用泛型吗?

转载 作者:搜寻专家 更新时间:2023-11-01 02:22:40 25 4
gpt4 key购买 nike

我知道那种类型删除,并且会在定义映射时阻止使用泛型,因为这个问题指出了 how to map generics objects with Orika? .但是Orika FAQ ,在 Are generics supported 部分,声明:

Yes. Orika includes special runtime support for the mapping of generic types via a special Type class which can be used to define the exact type elements of a templated type.

理想情况下像下面这样的东西应该可以工作(假设我们可以通过一些 Orika 功能以某种方式在运行时维护类参数):

     mapperFactory.classMap(Asset<T,K>.class, AssetDto<K>.class)
.maybeSomeCustomization...
.byDefault()
.register();

我找不到关于 Type<?> 的任何示例Orika FAQ 提到的类用法。

最佳答案

有可能,您需要使用 MapperFactory#classMap(Type<A>, Type<B>) API 而不是 MapperFactory#classMap(Class<A>, Class<B>) .

您可以在 generics 中找到 Orika 测试中的大量示例包。

构造一个Type例如,您可以使用 TypeBuilder 的就地匿名子类:

Type<MyGenericClass<GenericParam1, GenericParam2>> type =
new TypeBuilder<MyGenericClass<GenericParam1, GenericParam2>>() {}.build();

注意括号 {}在创建匿名子类的构造函数之后。这样 Orika 就可以找到实际的 MyGenericClass<GenericParam1, GenericParam2>使用 ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments() 输入参数.

关于java - 在 Orika 中定义映射时真的可以使用泛型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35460113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com