Есть ли более эффективный способ (предпочтительно O (1), а не O (n), но , по крайней мере, быстрее набрать ), чтобы типизировать элементы вектора, чем этот?
public Vector<String> typecastVector(Vector<Object> objects){
Vector<String> strings = new Vector<String>();
for(Object o : objects)
strings.add((String) o);
return strings;
}
Примечание
Для любого, кто сталкивается с очевидной необходимостью типизировать Vector
или другой класс Generic: как указывает принятый ответчик, это, вероятно, запах кода ивам, вероятно, понадобится рефакторинг кода в вашей иерархии классов.
В частности , если вы этого еще не сделали, вам следует подумать о создании классов, которые используют Vector
или другой класс Generic сами используют Generics .Когда я сделал это в своем собственном коде, я полностью исключил необходимость функции в моем коде, которая была бы аналогична вышеуказанной функции.
Если вы никогда не использовали Generics в своем собственном коде, проверьте ссылку «Generics» выше.Вы можете быть удивлены (как и я), обнаружив, что они могут быть использованы для реализации именно той функциональности, которая, как вы думали, вам нужна от Vector
typecast.