java / intermediate
Snippet
Validieren und Iterieren indizierter Array-Nutzdaten in Web-Controllern
Bei der Verarbeitung strukturierter Batch-Nutzdaten deserialisiert Spring eingehende JSON-Arrays automatisch in Java-Arrays oder Sammlungen innerhalb von Datenträger-Records. Die Verwendung indexbasierter Schleifenkontrollstrukturen ermöglicht es Entwicklern, einzelne Array-Elemente zu prüfen und gleichzeitig die exakte Indexposition für lokalisierte Validierungsrückmeldungen zu erfassen, bevor transaktionale Verarbeitungsschritte beginnen.
snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public record ItemEntry(String skuCode, int quantity) {}public record BatchShipmentRequest(ItemEntry[] entries) {}@RestController@RequestMapping("/shipments")public class ShipmentController {@PostMapping("/process-batch")public ResponseEntity<String> processShipment(@RequestBody BatchShipmentRequest request) {ItemEntry[] items = request.entries();if (items == null || items.length == 0) {return ResponseEntity.badRequest().body("Batch array cannot be empty");}int totalQuantity = 0;for (int i = 0; i < items.length; i++) {ItemEntry item = items[i];if (item.quantity() <= 0) {return ResponseEntity.unprocessableEntity().body("Invalid quantity at index " + i);}totalQuantity += item.quantity();}return ResponseEntity.ok("Processed " + items.length + " entries with " + totalQuantity + " total items");}}
spring
Erklärung
1
public record BatchShipmentRequest(ItemEntry[] entries) {}
Definiert einen unveränderlichen Anfrage-Datenträger, der ein Array strukturierter Positionseinträge enthält.
2
ItemEntry[] items = request.entries();
Extrahiert das deserialisierte Array-Payload aus dem empfangenen Request-Body-Record.
3
for (int i = 0; i < items.length; i++)
Iteriert über Array-Indizes, um Bereichsprüfungen durchzuführen und Validierungsfehler exakt zu lokalisieren.