Java 添加最后的子项“;自动地;对象内

Java 添加最后的子项“;自动地;对象内,java,field,children,Java,Field,Children,我想用带有内部Obj对象的通用Obj类构建一个java数据结构。以下是一个例子: public final Obj x = new Obj() { public final Obj y = new Obj(3); public final Obj z = new Obj() { public final Obj a = new Obj(3); public final Obj b = new Obj(4); } }; 当然,这是可行的:我可以使用变量x或x.y或x.

我想用带有内部Obj对象的通用Obj类构建一个java数据结构。以下是一个例子:

public final Obj x = new Obj() {
  public final Obj y = new Obj(3);
  public final Obj z = new Obj() {
    public final Obj a = new Obj(3);
    public final Obj b = new Obj(4);
  }
};
当然,这是可行的:我可以使用变量x或x.y或x.z.a等等

我的问题是:每个叶对象都有一个固定的大小(这里作为int值提供给构造函数)和上部对象中的索引。父对象的大小为子对象的总和:

a and y has size 3
b has size 4
--> z has size 7
... --> x has size 10

y and a have index 0
z and b have index 1
当然,我可以通过将父对象作为构造函数的一部分来实现它:

public final Obj x = new Obj() {
  public final Obj y = new Obj(x, 3);
  public final Obj z = new Obj(x) {
    public final Obj a = new Obj(z, 3);
    public final Obj b = new Obj(z, 4);
  }
};
但我想做这个“魔术”——有没有办法

我需要两件事中的一件:

1) 添加所有内部字段后运行的方法(因此我可以通过反射获得所有内部对象)

2) 或者是一种技术,可以告诉上面的对象什么(所以y中的对象告诉x中的对象“嘿,我是你的儿子!”)

我尝试使用对象初始化块,但所有这些块都与构造函数成对运行:初始化x的块,然后初始化x的构造函数,然后初始化y的块

希望,我的问题描述清楚


非常感谢你的帮助

这是相当不清楚的,看起来非常像一个。请描述一下你试图解决的实际问题。好吧,我的问题是我是如何告诉你的。我不知道如何更好地解释。对不起,我的英语不好。好吧,我会尝试得更好:有没有一种“自动”的方式,x中的对象告诉y中的对象它是它的孩子?告诉我们你想建模什么,而不是你认为模型应该是什么样子。对不起,不知道如何建模。这是一个“艺术”的问题,而不是造型的问题。我知道如何编码和建模。上层代码将由工具生成,并可由程序员进行扩展。所以这应该很容易。