Validatieberichten weergeven
Je hebt annotaties ingesteld als kwaliteitscontrole op gegevens over verkochte videogames. Voer nu de validatie uit op gegevens met fouten om te zien welke berichten worden geprint. In de foute gegevens ontbreekt een platform, is year vóór 1960, en zijn sales negatief, wat in strijd is met de beperkingen die in de annotaties zijn vastgelegd. Valideer de gegevens over de videogameverkoop en print alle validatieberichten.
jakarta-packages zijn al voor je geïmporteerd.
Deze oefening maakt deel uit van de cursus
Data opschonen in Java
Oefeninstructies
- Print het validatiebericht wanneer de gegevens een beperking schenden.
- Valideer de videogameverkoop door de
validatortoe te passen.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
public class VideoGameSale {
@NotNull(message = "Name cannot be empty")
private String name;
@NotNull(message = "Platform cannot be empty")
private String platform;
@Min(value = 1960, message = "Year must be greater than 1960")
private Integer year;
@Min(value = 0, message = "Sales amount must be positive")
private Double sales;
public VideoGameSale(String name, String platform, Integer year, Double sales) {
this.name = name;
this.platform = platform;
this.year = year;
this.sales = sales;
}
public static void main(String[] args) {
VideoGameSale sale = new VideoGameSale(
"Super Mario Bros.", null, 1950,
-29.08);
Set> violations =
SalesValidator.validateSale(sale);
// Print the violation message
violations.forEach(violation ->
System.out.println(____.____()));
if (!violations.isEmpty()) throw new ConstraintViolationException(violations);
}
}
class SalesValidator {
private static final ValidatorFactory factory =
Validation.buildDefaultValidatorFactory();
private static final Validator validator = factory.getValidator();
public static Set> validateSale(VideoGameSale sale) {
// Validate the video game sale
return ____.____(sale);
}
}