Avatar ·

أي تعليق توضيحي @NotNull في Java هو الأفضل للاستخدام ولماذا؟

مرحبًا بالجميع! أنا مطور Java مبتدئ وأكتب أول مشروع جاد لي. واجهت مشكلة أن دوالّي تتعطل باستمرار بسبب NullPointerException لأنني أنسى التحقق من الوسائط null. قررت استخدام التعليقات التوضيحية @NotNull لكي تحذرني IDE من المشاكل المحتملة، ولكن هنا نشأ الارتباك. في مشاريع مختلفة أرى تعليقات توضيحية مختلفة: - `javax.annotation.Nonnull` (من JSR 305) - `org.jetbrains.annotations.NotNull` (من IntelliJ IDEA) - `lombok.NonNull` (من Lombok) - `jakarta.annotation.Nonnull` (من Jakarta EE) - `javax.validation.constraints.NotNull` (من Bean Validation) لا أفهم أيًا منها يجب أن أختار لمشروعي. على سبيل المثال، أكتب كودًا مثل هذا: ```java public class UserService { public User createUser(String name, String email) { // هنا يحدث null أحيانًا، لكني غالبًا أنسى التحقق if (name == null) { throw new IllegalArgumentException("Name must not be null"); } // أما email فليس