เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การแสดงข้อความแจ้งผลการตรวจสอบ

ได้ตั้งค่า annotation ไว้เพื่อควบคุมคุณภาพข้อมูลการขายวิดีโอเกมแล้ว ลองรันการตรวจสอบบนข้อมูลที่มีข้อผิดพลาดเพื่อดูว่ามีข้อความใดถูกแสดงออกมา ข้อมูลที่มีปัญหานี้ขาด platform มี year ก่อนปี 1960 และมี sales เป็นค่าลบ ซึ่งละเมิด constraint ที่กำหนดไว้ใน annotation ตรวจสอบข้อมูลการขายวิดีโอเกมและแสดงข้อความแจ้งการละเมิดที่พบ

ได้ import แพ็กเกจ jakarta ไว้ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การทำความสะอาดข้อมูลใน Java

ดูคอร์ส

คำแนะนำการฝึกหัด

  • แสดงข้อความแจ้งการละเมิดเมื่อข้อมูลไม่ผ่าน constraint
  • ตรวจสอบข้อมูลการขายวิดีโอเกมโดยใช้ validator

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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);
    }
}
แก้ไขและรันโค้ด