Jython:Object的ArrayList,它位于另一个Object的ArrayList中,不是新创建的

时间:2016-11-24 21:48:46

标签: java arraylist jython

  

你好我是Stack Overflow的新手,希望你能得到我的问题:

我第一次和Jython一起工作。我的目标是将它用于ibm wsadmin-scripting,这需要jython或cython,但只有jython是我的选择。我尝试构建一个基本代码,这将是我的Classes最后会有的标准结构。

关系是1-N-N得到这个我正在为每个类使用Arraylist,它有N个属性。

  

当我尝试使用Arraylist时,它总是写在同一个List中,并且没有使用新创建的。希望我的代码解释了这个问题。如果有人能告诉我我的逻辑问题,我会很高兴。

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

1 个答案:

答案 0 :(得分: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)