0

Eclipse get me compilation errors after write my code.

I don't understand why not accept ErrorFieldCustom parameter on ErrorCustom (on new constructor in main) whether ErrorFieldCustom extends ErrorMessageCustom.

public static void main(String[] args) {
    Set<ErrorFieldCustom> errorsCustom = new HashSet<>();
    ErrorCustom error = new ErrorCustom(errorsCustom); // compilation error is here
}

public class ErrorCustom {
    private Set<ErrorMessageCustom> errors;

    public ErrorCustom(Set<ErrorMessageCustom> errors) {
        this.errors = errors;
    }

    public Set<ErrorMessageCustom> getErrors() {
        return errors;
    }
}

public class ErrorMessageCustom {
    protected String message;

    public ErrorMessageCustom(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }
}

public class ErrorFieldCustom extends ErrorMessageCustom {
    private String field;

    public ErrorFieldCustom(FieldError error) {
        super(error.getDefaultMessage());
        this.field = error.getField();
    }

    public String getField() {
        return field;
    }
}

1 Answers1

0

try changing public ErrorCustom(Set<ErrorMessageCustom> errors) { this.errors = errors; }

by public ErrorCustom(Set<? extends ErrorMessageCustom> errors) { this.errors = errors; }

SARR
  • 63
  • 8