次のようなことができる多くのJavaクラス/オブジェクトに大量のデータを保存したいと思います。
public static void main(String[] args){
System.out.println(String.valueOf(Data.Foo.bar));
System.out.println(String.valueOf(Data.Foo.array[0].bar));
}
出力:
True
False
====すべてのデータを含むデータクラス:
public class Data {
public class Base {
public boolean bar = false;
public Base[] array = {};
}
public class Foo extends Base {
this.bar = true;
this.array = {Abc};
}
public class Abc extends Base {}
}
これらのクラスのインスタンスを作成したくありませんが、クラス内のデータにアクセスしたいと思います。データはすべて最終的なものであり、変更されることはありませんが、これらのデータをオーバーライドする別のオブジェクトによって変更する必要があります。(例のクラスFooを参照してください)
これを機能させるにはどうすればよいですか?
編集: Dataクラスは、プログラム全体のすべてのポイントからアクセスできる必要があります。Dataクラスのインスタンスがあってはなりません
編集 まあ、私はこれが「通常の」方法でどのように機能するかを例に挙げます...
public class Data {
public Foo foo = new Foo();
public Abc abc = new Abc();
public class Base {
public boolean bar = false;
public Base[] array = {};
}
public class Foo extends Base {
this.bar = true;
this.array = {abc}; //changed to abc from Abc
}
public class Abc extends Base {}
}
これらの2行なしでFooクラスとAbcクラスを参照したいと思います。
public Foo foo = new Foo();
public Abc abc = new Abc();