كيف يمكنني التعامل مع قائمة فارغة في الكؤوس المقدسة / GORM؟

StackOverflow https://stackoverflow.com/questions/1051894

  •  20-08-2019
  •  | 
  •  

سؤال

وأنا أحاول الحصول على علاقة واحد لكثير العمل مع الكؤوس المقدسة / GORM. أنا لا أفهم كيفية التعامل مع قائمة فارغة.

وهنا هو الطبقة نطاقي:


class Parent {
  List children
  static hasMany = [children: Children]
}

وهنا هو اختبار لي:


  void testEmptyChildren() {
    def parent = new Parent()
    assert 0, parent.children.size()
  }

وهذا فشل مع "java.lang.NullPointerException: لا يمكن استدعاء حجم طريقة () على وجوه لاغية"

وماذا أكون أنا من المفترض القيام به للتعامل مع قائمة فارغة؟

هل كانت مفيدة؟

المحلول

في parent.children اختبار الخاص بك وسوف يكون دائما فارغة (الأطفال لن يكون مهيأ حتى تقوم بإضافة أول واحد). لذلك يمكن أن تغيير الاختبار إلى:

assertNull parent.children

وسيتم تهيئة الأطفال عند حفظ الرئيسي (بغض النظر إذا أضيفت الأطفال) أو عند إضافة الأطفال. إذا كنت تريد أن تكون دائما تهيئة يمكنك أن تفعل ذلك يدويا في الأصل عند تعريف الأطفال:

List<Children> children = new ArrayList<Children>()

نصائح أخرى

وأنا على الحصول على نتائج مماثلة (ربما الأطفال يبقى باطلا). لاحظ أنك يجب أن تستخدم لاختبار التكامل لأشياء GORM ليكون حولها.

ويمكنك التعامل مع قائمة فارغة كما يلي:

parent.children?.each { println it}
parent.addToChildren(new Children(/* whatever you need */))
parent.children?.each { println it}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top