保存未知类的状态

时间:2018-09-13 12:17:22

标签: java reflection

我有一个Parent类和26个子类,并希望保存其中一个实例的状态。

父类:

"C:\sonar-scanner-msbuild-4.3.1.1372-net46\SonarScanner.MSBuild.exe" begin /k:"MyApp"  /d:sonar.css.file.suffixes=.foo /d:sonar.host.url="http://localhost:9000" /d:sonar.login="200dc9294n6bg4d4cc9bed30mj76fcb10d25ee17"

第一个子类,其中包含其他字段:

public class ParentClass {
    protected String name;
    protected String type;

    public ParentClass(String name) {
        this.name = name;
        this.type = "Parent";
    }

    public ParentClass(ParentClass src){
        this.name = src.name;
        this.type = src.type;
    }
}

最后一个包含其他字段的子类:

public class ChildClassA extends ParentClass {
    protected String value;

    public ChildClassA(String name, String value) {
        super(name);
        this.value = value;
        this.type = "A";

    }

    public ChildClassA(ChildClassA src) {
        super(src);
        this.value = src.value;
    }
}

要保存未知类的状态,我在子类中使用带有此类参数的构造函数,定义类类型并按大小写结构进行初始化。

是否可以避免使用case或if-then-else结构来提高代码的可读性?可能是反思。

public class ChildClassZ extends ParentClass {
    protected int size;

    public ChildClassZ(String name, int size) {
        super(name);
        this.size = size;
        this.type = "Z";
    }

    public ChildClassZ(ChildClassZ src) {
        super(src);
        this.size = src.size;
    }
}

1 个答案:

答案 0 :(得分:0)

  

“ Java对象可以写入文件以供将来访问,这称为   序列化。为此,您必须实施   Serializableinterface,并使用ObjectOutputStream编写对象   放入文件中。”

     

https://www.mkyong.com/java/how-to-write-an-object-to-file-in-java/

当然,您可以将它们存储为字符串而不是文件