Устройство проектирования строителя для API Endpoint Spring BootJAVA

Программисты JAVA общаются здесь
Anonymous
Устройство проектирования строителя для API Endpoint Spring Boot

Сообщение Anonymous »

Я попытался использовать шаблон проектирования застройщика для модельного класса. Мне нужно иметь некоторые обязательные файлы и некоторые дополнительные поля; Этот дизайн может помочь мне в этом сценарии. Я использую Spring Boot и Java 22 и создал модельный класс для одной из конечных точек. Я также включил импорт, и я удалил много ненужного кода, поскольку основное внимание является приоритетным полем. Это класс: < /p>

Код: Выделить всё

import java.sql.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import java.util.Optional;

public class ConfigRequestModel {
private String id;
//other mandatory fields
private Optional priority;
// other optional fields

public ConfigRequestModel(){}

public ConfigRequestModel(ConfigRequestModelBuilder builder) {
this.id = builder.id;
//other mandatory and optional fields
this.priority = builder.priority;
}

public static class ConfigRequestModelBuilder{
private final String id;
//other mandatory and optional fields
private Optional priority;

public ConfigRequestModelBuilder(String id,
//other mandatory fields) {
//mandatory fields

}

public void map(HashMap map) {
if(frequency.isEmpty()){
this.map = new HashMap();
}else {
this.map = map;
}
}

public void setPriority(Optional priority) {

this.priority = priority.isPresent() ? priority : Optional.empty();

//            if (priority.isPresent()) {
//                this.priority = Optional.empty();
//            }else {
//                this.priority = priority;
//            }
}

public void date(Optional date) {
if (date.isPresent()){
this.date = Optional.empty();
}else {
this.date = date;
}
}
//rest of the setters

public String id() {
return id;
}
// rest of the getters
//equals
//hashCode
//toString
< /code>
Вот как я использую приоритет: < /p>
if (configRequestModel.getPriority().isEmpty())
< /code>
Я получил эту ошибку: < /p>
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.NullPointerException: Cannot invoke "java.util.Optional.isEmpty()" because the return value of "com.upload_manager.UploadManager.model.uploadManager.ConfigRequestModel.getPriority()" is null] with root cause
< /code>
Это странно, потому что Джексон должен позвонить строителю по умолчанию, так как я прочитал, что он может обнаружить эти шаблоны. Более того, приоритет.ispresent () 
должен работать и PUT optainAl.empty () , а не null .
Если у вас есть какие -либо предложения, Пожалуйста, не стесняйтесь поделиться ими.

Подробнее здесь: https://stackoverflow.com/questions/788 ... pring-boot

Вернуться в «JAVA»