在Java中,我想创建一个数据类型,比方说Atom,它包含一个索引号,当该索引= 0时,Atom将包含一个String数据,否则Atom只是一个索引(整数)。
我怎样才能做到这一点?
我想如果大多数原子只是索引并且只有一些包含字符串,那么会节省一些空间。
最佳答案
以下工厂模式说明了静态工厂方法 createAtom
如何使用不同的数据创建不同类(均为 Atom)的实例。
这里我将索引final
改为0,不会改变对象的类。 Atom 还必须提供对可选数据的访问。
public class Atom {
public final int index;
private Atom(int ix) {
this.index = ix;
}
public String getDatum() {
return null;
}
public static Atom createAtom(int index) {
return index != 0 ? new Atom(index) : new ExtendedAtom(index);
}
}
class ExtendedAtom extends Atom {
private String datum;
ExtendedAtom(int ix) {
super(ix);
}
@Override
public String getDatum() {
return datum;
}
}
关于java - Java中可变大小的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27362264/