Cannot create mapping method with single primitive argument
还没有人认领这个 Issue。
评估
调研方向
使用 MapStruct 1.6.3 运行提供的 PrimitiveMapperTest reproducer,并将单个基本类型参数的情况与 issue 中描述的两个参数的情况进行比较。跟踪 annotation processor 对 PrimitiveMapper.map(long value); 的处理。单参数映射方法成功生成且测试通过,即表示完成。
由索引模型根据 Issue 内容生成。
描述
Expected behavior
Given a mapping method which takes a single argument of primitive long, like below:
import org.junit.jupiter.api.*;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
import static org.assertj.core.api.Assertions.assertThat;
class PrimitiveMapperTest {
@Test
@DisplayName("should convert primitive type")
void shouldConvertPrimitiveType() {
var mapper = Mappers.getMapper(PrimitiveMapper.class);
var target = mapper.map(123);
assertThat(target.value()).isEqualTo(123);
}
protected record Target(long value) {}
}
@Mapper
abstract class PrimitiveMapper {
@Mapping(target = "value", source = "value")
public abstract PrimitiveMapperTest.Target map(long value);
}
An expectation is that the mapping method is generated and the test passes.
(Mapstruct is configured with -Amapstruct.unmappedTargetPolicy=ERROR)
Actual behavior
Compilation fails with a message:
java: Can't generate mapping method with primitive parameter type.
Funny enough, it starts working after adding a 2nd argument which could also be of a primitive (sic!) type. I could make the above example working like this:
...
public abstract PrimitiveMapperTest.Target map(long value, long unused);
Steps to reproduce the problem
See above
MapStruct Version
1.6.3
- 主要语言
- Java
- 星标
- 7.7k
- 派生
- 1.1k
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
mapstruct/mapstruct 的其他 Issue
-
bug test
难度 4/5 3-5 天 新手友好度 48/100
-
bug
难度 3/5 1-2 天 新手友好度 68/100
-
难度 4/5 3-5 天 新手友好度 68/100
-
bug JSpecify
-
难度 3/5 1-2 天 新手友好度 72/100
查看 mapstruct/mapstruct 的全部 Issue
相似的 Issue
-
documentation
难度 2/5 1-3 小时 新手友好度 65/100
inu-appcenter/memorIN-backend#288 ·
-
难度 2/5 1-3 小时 新手友好度 65/100
-
frontend maui-pilot pilot-ask question
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 75/100
-
area/plugin
难度 2/5 1-3 小时 新手友好度 75/100
kestra-io/plugin-kestra#190 ·