试图弄清楚如何创建一个可以基于文本文件创建对象的类。如果Readable接口有方法String asString(),而类中的Readable方法read(String s)就是根据字符串s构造一个Readable对象,这样(read(String s).asString())。等于(s),如果正在写入/读取的可读类型只有原始参数,我已经能够使用反射轻松写入读取,但我不确定如何编写它们以便在构造函数时轻松转换为字符串和从字符串转换以任意顺序获取任意数量的 Readable 类。对于仅使用原语,asString 方法如下所示:
private int n, double d;
...
public String asString(){
return "@"+getClass().getName()+"#i%d#"+this.n+"%"+this.d;
}
这些符号是允许我使用 String.split 的任意字符,并且 i 和 d 给出了字段 n 和 d 的原始类型,因为 Class.forName 不适用于原始类型。这个问题需要我有大约 7 层嵌套的 Readables,然而,其中一些有任意数量的 Readables 的容器。我了解如何基于字符串编写读取方法,但是如何在保留所有必要信息的同时将对象压缩为字符串?