Вызов метода у объекта вектора! Java!

Рейтинг: 0Ответов: 1Опубликовано: 22.02.2015

Здравствуйте, уважаемые хэшкодеры!

Требуется ваша помощь в решении, надеюсь, тривиальной задачи. Как вызвать методы у элемента вектора? То есть имеется vector класса Vector, в котором лежат элементы типа Type. Причем у класса Type есть метод getName(). Но когда я хочу выполнить вот такую операцию, вектор ругается: vector.get(1).getName(); - IDEA подчеркивает красным цветом вызов метода getName(); Как это обойти, кто знает?

Спасибо!

Ответы

▲ 1

Наверное Ваш вектор объявлен так:

Vector vector = new Vector();

В этом случае, каждый элемент вектора считается объектом класса Object, а значит для него Ваши методы неприменимы. Используйте Generics (если, конечно, Вы не работаете с версией Java < 1.5). С помощью Generics объявление вектора можно переписать так:

Vector<Type> vector = new Vector<Type>(); //Java 1.5, 1.6
Vector<Type> vector = new Vector<>(); //Java 1.7

Я привёл здесь 2 версии: для Java 1.5, 1.6 и для 1.7. Как видите, в Java 1.7 был добавлен оператор diamond <>, что ещё больше упростило код.

Ещё 1 совет: пользуйтесь ArrayList вместо Vector. Он быстрее и вообще новее: Отличие Vector от ArrayList.