Создание вектора объектов в Java - PullRequest
2 голосов
/ 18 мая 2011

Допустимо ли в Java следующее:

public Vector <Object> objVector = new Vector <Object>(50);

Я знаю, что по умолчанию значения хранятся в виде объектов, но я хотел бы знать, как ограничить содержимое по типу ...

Спасибо

Ответы [ 4 ]

9 голосов
/ 18 мая 2011

Это древний код.

Используйте Generics и используйте современные типы коллекций ( не используйте Vector ), тогда вы получите проверки во время компиляции автоматически:

List<String> list = new ArrayList<String>()
list.add(new Foo()); // compile-time failure
list.add("SomeString"); // ok
2 голосов
/ 18 мая 2011

Я думаю, что вы ищете генерики :

public Vector<String> objVector = new Vector<String>(50);
1 голос
/ 18 мая 2011
I would like to know how to restrain the contents by type...

Просто укажите тип при создании экземпляра вектора:

public Vector <concreteType> objVector = new Vector <concreteType>(50);

Используя универсальные шаблоны, вы можете указать ограничение типа на основе иерархии:

class yourClass<TYPE extends SomeType>{

     public yourClass(){
           public Vector <TYPE> objVector = new Vector <TYPE>(50);
     }
}

В последнем примере TYPE может быть любым типом, который расширяет SomeType (включая SomeType).Вы можете использовать ключевое слово Implements, чтобы ограничить тип TYPE интерфейсами вместо классов.

0 голосов
/ 30 апреля 2015

С 'допустимым', синтаксис в порядке:

public Vector <Object> objVector = new Vector <Object>(50);

В используемой платформе NetBeans 8: 0: 2 будет отображаться устаревшая коллекция , гораздо лучше использовать ArrayList, хотя Vector имеет преимущество , он может хранить практически все, что угодно.

Декларация:

Vector v = new Vector();

, который создает пустой вектор, этот тип вектора может «добавлять» целые числа, логические значения, ArrayList и другие примитивные типы данных и ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...