テキストファイルに基づいてオブジェクトを作成できるクラスを作成する方法を見つけようとしています。インターフェイス Readable にメソッド String asString() があり、クラス内のメソッド Readable read(String s) が文字列 s に基づいて Readable オブジェクトを構築する場合、(read(String s).asString()) になります。 equals(s)、書き込み/読み取り対象の Readable 型にプリミティブ引数しかない場合、リフレクションを使用して読み取りを簡単に書き込むことができましたが、コンストラクターが文字列との間で簡単に変換するためにそれらを書き込む方法がわかりません任意の順序で任意の量の Readable クラスを取ります。プリミティブのみを使用する場合、asString メソッドは次のように読み取ります。
private int n, double d;
...
public String asString(){
return "@"+getClass().getName()+"#i%d#"+this.n+"%"+this.d;
}
Class.forName はプリミティブでは機能しないため、記号は任意の文字であり、String.split を使用できます。i と d は、フィールド n と d のプリミティブ型を指定します。この問題では、ネストされた Readables の約 7 層が必要ですが、そのうちのいくつかには、任意の量の Readables のコンテナーがあります。文字列に基づいて読み取りメソッドを記述する方法は理解できましたが、必要な情報をすべて保持しながら、オブジェクトを文字列に圧縮するにはどうすればよいでしょうか?