问题标签 [targettype]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
474 浏览

java - 无法让 MapStruct 与 Enum Inheritance 和 @TargetTytpe 一起使用

这是我的示例设置:

我无法通过考试。

我尝试使用或不使用qualifiedByName,但无法让 MapStruct 使用该mapStringToEnum方法。

我不确定这是否是 MapStruct 中的一个错误,在使用时无法使用 Enum 继承,@TargetType或者我遗漏了一些东西。

  • 使用@Mapping(source = "message", target = "messageA", qualifiedByName = "stringToEnum")时,会出现编译时错误:
  • 当使用@Mapping(source = "message", target = "messageA")或与 resultType 一起使用时@Mapping(source = "message", target = "messageA", resultType = EnumMessage.class,生成的实现会忽略提供的方法。

如果有更优雅的方法来概括映射,我愿意接受建议。注意:我不能使用 ,@BeforeMapping / @AfterMapping因为我有许多要映射的枚举类型,因此寻找隐式或通用的解决方案。

0 投票
2 回答
179 浏览

c# - 如何使用 object.GetType() 将对象转换为任何类型

我有一个object类型变量,我想将其转换为其原始数据类型。数据类型可以是任何东西(int、enum、class 等)

(object.GetType())object不管用

编辑:

我想再次将其转换为原始的原因,因为我正在构建一个带有多个参数的 cosmos db 查询

我有一个方法QueryCosmos(Dictionary<string, object> parameters),其中 key 是 cosmos 中的字段名称,value 是与条件匹配的字段的值(它可以是任何数据类型)。

我的问题是这行代码var value = p.Value == null ? "null" : p.Value.ToString().ToLower();

如果我传递一个enum类型,与 cosmos 中的数据不匹配。因为在cosmos中,这是存储为枚举的数值。我需要它转换成它的numeric价值。enum可以传递多种可能的类型。这就是为什么我想要一种动态方式来转换为原始数据类型的原因

希望这可以消除担忧