Как добиться динамического связывания с ArrayList<T> в Java?


Похоже, ArrayList в Java не поддерживает динамическое связывание. Когда я попытался сделать следующий код, он дал ошибку времени компиляции.
Код:

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)? Есть ли другой способ добиться этого? Есть ли другие структуры данных для этого?


Заранее спасибо.

0 ответов

Другие вопросы по тегам