定义一个包含该类元素数组的Java类作为其字段是否有问题?

3
我的应用程序模型由多个疾病组成,每个疾病都具有固有属性(例如id、名称、发生率等),并且与其他疾病存在关联(例如风险因素、诱发疾病、结果等)。 我考虑了以下两种对象模型:
第一种:嵌套类:
class DiagnosticElement{
      Disorder disorder;
      List<Disorder> relatedDisorders;

      static class Disorder {
          int id;
          String name;
          double incidence;
          Disorder(id){
              this.id=id;
          }

    }
}

第二点:
class Disorder {
        int id;
        String name;
        double incidence;
        List<Disorder> relatedDisorders;

        Disorder(id){
            this.id=id;
            this.relatedDisorders=new ArrayList<Disorder>()
        }

    }

第二种方法似乎更简单。当然,在我可以在ArrayList中引用它们之前,我必须首先实例化Disorder对象。这两种方法哪个更好?
2个回答

7

使用第二种方法没有问题,事实上它经常被使用。例如,考虑树形结构或链表,其中节点包含指向其他节点的链接。但是要小心,在构造函数内部创建相同类型的对象可能会导致代码永远运行。


谢谢。我只是想确保我没有忽略一些已知的未知因素。 - Alicia

0

小心,你的代码行

List<Disorder> relatedDisorders=new ArrayList<Disorder>()

在构造函数中,将创建一个名为relatedDisorders的局部变量,并进行初始化。但是,您没有初始化类字段。
无论如何,在类内部引用自己的类并没有什么问题。这就是每个链表的工作原理。

谢谢。我已经编辑了问题以反映你的更正。 - Alicia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接