Самый простой способ объявить объект будет что-то вроде
List<Vector<? extends Object>> inventoryItem = new ArrayList<Vector<? extends Object>>
но у этого есть несколько проблем, а именно, что дженерики Java не реализованы, поэтому вы должны тестировать и приводить содержимое каждого вектора, который вы получаете. Лучшим решением было бы определить контейнерный объект, который имеет каждый из Векторов как поля, и добавить к ним.
Тем не менее, похоже, что он действительно упускает суть. Вместо этого вы должны определить InventoryItem, который имеет каждое из ваших семи полей. Каждый раз, когда вы читаете объект из файла, создаете экземпляр нового InventoryItem и заполняете его поля. Затем вы добавляете это к одному вектору.
Кроме того, обычно рекомендуется не использовать класс Vector. Вместо этого вы должны использовать ArrayList. Vector действительно следует использовать только в том случае, если вам нужны его свойства синхронизации, и даже в этом случае вам следует рассмотреть обертывание какого-либо другого списка в Collections.synchronizedList ().
Наконец, места, где вы хотите поймать только Исключение, можно посчитать с одной стороны. Вы должны действительно ловить IOException и даже то, что вы можете рассмотреть просто сбросить. Кроме того, вы должны вызывать printStackTrace () для исключения, а не System.out.println ().