2016-11-24 45 views
0

你好,我是新來的堆棧溢出希望你能得到我的問題:的Jython:對象的ArrayList中,這是另一種對象的ArrayList是不是創造了新的

我工作的第一次與Jython。我的目標是將其用於ibm wsadmin腳本,它需要jython或cython,但只有jython纔是我的選擇。我試着建立一個基本代碼,這將是我的類在最後的標準結構。

關係是1-N-N得到這個我使用Arraylist爲每個類,它有N個屬性。

當我試圖使用Arraylist時,它總是寫在同一個列表中,並沒有使用新創建的。希望我的代碼能夠解釋這個問題。如果有人會告訴我我的邏輯問題,我會很高興。

class Student: 
     name = none 
     age = None 

class Group: 
    name = None 
    studentList = ArrayList() 

    def addStudent(self,stName,stAge): 
    var1 = Student() 
    var1.name = stName 
    var1.age = stAge 
    self.studentList.add(var1) 

class School: 
    name = None 
    groupList = ArrayList() 

    def createGroups(self): 
     group1 = Group() 
     group1.addStundent('Tim',16) 
     group2 = Group() 
     group2.addStudent('Lisa',15) 
     group2.addStudent('Marco',16) 

     for z in range(len(group2.studentList)): 
     studentResult = group2.studentList[z].name 
     Print 'Group2 - StudentNumber:' + str(z)+ '- Name:' + studentResult 

SystemOut =

Group2 - StudentNumber 0- Name: Tim 
    Group2 - StudentNumber 1- Name: Lisa 
    Group2 - StudentNumber 2- Name: Marco 

回答

0

這不是你初始化實例字段的方式。在你的代碼中,所有這些字段都是聲明的類字段。你必須創建一個使用__init__神奇的字眼一個構造函數,像這樣:

class Group: 
    def __init__(self): 
    self.name = None 
    self.studentList = ArrayList() 

    def addStudent(self,stName,stAge): 
    var1 = Student() 
    var1.name = stName 
    var1.age = stAge 
    self.studentList.add(var1) 
+0

感謝您的回覆快,我將對其進行測試,明天給你一個反饋;) –

相關問題