看起来 Java 中的 ArrayList 不支持动态绑定。当我尝试执行以下代码时,它给出了编译时错误。
代码:
class Value
{
<some variables>
<some methods>
}
class IntegerValue extends Value
{
int value;
}
class CharacterValue extends Value
{
char value;
}
class Main{
ArrayList<Value> values = null;
public static void main(String args[])
{
swtich(args[1])
{
case "integer":
values = new ArrayList<IntegerValue>();
break;
case "character":
values = new ArrayList<CharacterValue>();
break;
default:
values = new ArrayList<Value>();
}
}
}
看起来 ArrayList 不支持动态绑定,但 Array 支持。当我执行 Value[] values = new IntegerValue[maxSize] 时,它确实是通过创建超类类型的引用来编译的。但是,如果我一开始不知道大小并且还想要数据结构的动态行为(类似于 ArrayList 可以做什么)怎么办?有没有其他方法可以实现这一目标?有没有其他的数据结构呢?
提前致谢。