2
@Mapper
public interface MyMapper<X extends Base_1, Y extends Base_2>{
    public X mapBase_2ToBase_1(Y obj);
}

Yジェネリック型のオブジェクトをジェネリック型の別のオブジェクトにマップしたいX。mapstructでそのようなことは可能ですか? それとも、汎用マッピング用のカスタム マッパーを作成する必要がありますか? 上記のコードをコンパイルすると、コンパイル エラーが発生します。

Caused by: java.lang.NullPointerException
    at org.mapstruct.ap.util.SpecificCompilerWorkarounds.replaceTypeElementIfNecessary(SpecificCompilerWorkarounds.java:90)
    at org.mapstruct.ap.util.Executables.getAllEnclosedExecutableElements(Executables.java:189)
    at org.mapstruct.ap.model.common.Type.getAllExecutables(Type.java:395)
    at org.mapstruct.ap.model.common.Type.getSetters(Type.java:464)
    at org.mapstruct.ap.model.common.Type.getPropertyWriteAccessors(Type.java:353)
    at org.mapstruct.ap.model.BeanMappingMethod$Builder.souceMethod(BeanMappingMethod.java:93)
    at org.mapstruct.ap.processor.MapperCreationProcessor.getMappingMethods(MapperCreationProcessor.java:345)
    at org.mapstruct.ap.processor.MapperCreationProcessor.getMapper(MapperCreationProcessor.java:143)
    at org.mapstruct.ap.processor.MapperCreationProcessor.process(MapperCreationProcessor.java:114)
    at org.mapstruct.ap.processor.MapperCreationProcessor.process(MapperCreationProcessor.java:73)
    at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:193)
    at org.mapstruct.ap.MappingProcessor.processMapperTypeElement(MappingProcessor.java:173)
    at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:154)
4

1 に答える 1

1

NPE に対処するためにトラッカーに問題を提出しました。そのようなマッパー コントラクトの適切な実装を作成できるかどうかは疑問ですが。メソッドの結果の型としてどの型をインスタンス化する必要があるかわかりませんでした。

示されている方法で型パラメーターを使用する理由は何ですか? どのような実装が生成されると予想されますか?

于 2015-08-19T23:28:46.267 に答える