Avatar
1
Tuan Nguyen Beginner
Tuan Nguyen Beginner
NullException khi sử dụng field có @EzyAutoBind trong constructor
Mình sử dụng một trường có annotation @EzyAutoBind ở trong constructor của class thì bị NullException. Có cách nào để workaround không nhỉ mọi người?
  • Answer
singleton
Remain: 5
2 Answers
Avatar
tvd12 Beginner
tvd12 Beginner
Nếu lớp của anh chỉ có các field là các singleton khác thì anh có thể dùng kiểu này:

@EzySingleton
@AllArgsConstructor
public class ProjectValidator {

    private final ProjectService projectService;
    private final ProjectCategoryService categoryService;
}

Còn nếu lớp của anh chứa các field khác không phải là singleton thì anh bắt buộc sử dụng @EzyAutoBind anh ạ:

@Setter
@EzyConfigurationAfter
public class PrepareDataConfig implements EzyBeanConfig {

    @EzyProperty
    private String prefix;
    
    @EzyAutoBind
    private ProjectCategoryService categoryService;
}
  • 0
  • Reply
Avatar
Tuan Nguyen Beginner
Tuan Nguyen Beginner
Thank em. Hoặc là anh có thể sử dụng Factory design pattern để sử dụng No Args constructor nhỉ? Sau đó thì initialize các field sử dụng method khác sau, như vậy lúc này các @EzyAutoBind field đều được assign value rồi.
  • 0
  • Reply
Em chưa hiểu ý anh lắm, nhưng nếu cái factory đó là singleton thì hoàn toàn có thể anh ạ.  –  tvd12 1641264489000