2016-01-18 2 views
-2

Я пытаюсь запустить этот класс, но у меня все время возникают проблемы. Я новичок в Java и не уверен, правильно ли я делаю это. Если кто-то может просто помочь мне с добавлением элементов в список, я смогу выяснить остальное!groovy: добавление и удаление элементов из определенной переменной в классе

class ListPractice implements Testable { 

    def mylist = [4,5,6] 

    /** 
    * Adds a set of elements to the mylist variable 
    * 
    * @param elts The elements to be added 
    */ 
    def addToList(List elts) { 

     def newlist = getMylist()+List 
     return newlist 
    } 

    @Override 
    void testMe() { 
     addToList([7,8,9]) 
     assert getMylist() == [4,5,6,7,8,9] 
     assert getMylist() == [7,8,9] 
    } 
} 

ответ

0

Вы добавляете List вместо elts. Метод, который вы ищете addAll:

groovy:000> l = [1,2,3] 
===> [1, 2, 3] 
groovy:000> l.addAll([4,5,6]) 
===> true 
groovy:000> l 
===> [1, 2, 3, 4, 5, 6] 

Поскольку addtoList звучит уже как если вы планируете мутировать this, почему создать новый, вернуть его, а затем никогда не использовать его? Итак: mylist.addAll(elts) должно быть достаточно.

, связанные с:

  • просто написать mylist вместо getMylist() - это заводной
  • ваш комментарий addToList говорит set но accepys в list. Наборы имеют разные характеристики, чем списки, поэтому это сбивает с толку. Если вы переименуете его в addToMylist, вам может даже не понадобиться комментарий вообще.
Смежные вопросы