Unexpected warning: ''.'' should not be used as a source
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 45/100
Rechercherichtung
Beginne damit, die Warnung anhand des FooMapper-Beispiels zu reproduzieren, und untersuche, wie das MapStruct IntelliJ plugin mit @Mapping-Werten umgeht, deren source "." ist. Vergleiche dieses Verhalten mit der dokumentierten Unterstützung von MapStruct für diese source-Form; abgeschlossen ist die Aufgabe, wenn die gültige Zuordnung nicht mehr fälschlicherweise gewarnt wird oder der Grund für die Warnung eindeutig festgestellt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I often have a use-case when "." is a valid and correct source of my mapping. It is officially supported mapping source, so why the plugin reports it as "should not be used"? Is there any particular reason or maybe it is just a historical burden from the times when MapStruct actually didn't support "." as a source?
Example:
record Failure(String code, String detail) {}
class Foo {
Failure failure;
}
class FooDto {
String failureCode;
String failureDetail;
}
public abstract class FooMapper {
@Mapping(target = "failure", source = ".")
public abstract Foo fromDto(FooDto fooDto);
protected Failure mapFailure(FooDto fooDto) {
return new Failure(fooDto.getFailureCode(), fooDto.getFailureDetail());
}
}
Of course, in this particular case we can just use:
@Mapping(target = "failure.code", source = "failureCode")
@Mapping(target = "failure.detail", source = "failureDetail")
But there are more complex cases when the target object should be created manually, by a custom code, and the only possible source is the whole source object.
- Vorherrschende Sprache
- Java
- Sterne
- 169
- Forks
- 42
- Ø Merge
- 7 T. 20 Std.
- Gemergte PRs (30 T.)
- 2
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus mapstruct/mapstruct-idea
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
mapstruct/mapstruct-idea#274 · 2 Kommentare ·
-
feature hack.commit.push
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
mapstruct/mapstruct-idea#267 ·
-
feature hack.commit.push
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
mapstruct/mapstruct-idea#266 ·
-
feature hack.commit.push
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 75/100
mapstruct/mapstruct-idea#265 ·
-
hack.commit.push
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
mapstruct/mapstruct-idea#256 ·
Alle Issues in mapstruct/mapstruct-idea
Ähnliche Issues
-
[BUG] 增量 SSE 解析器未识别单独 CR 换行,导致事件无法及时交付Evtl. vergeben @king-wwwhhh hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
langchain4j/langchain4j#6669 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
OpenAPITools/openapi-generator#25237 ·
Maintainer antworten meist innerhalb von 1 Tag
-
needs-area-label
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
quelea-projection/Quelea#711 ·
-
bug pdd
Schwierigkeit 2/5 Unter einer Stunde Anfängerfreundlichkeit 67/100
objectionary/eo#9450 ·
Maintainer antworten meist innerhalb von 1 Tag