2013-05-30 2 views
-4

Im очень новый для java и im, который в настоящее время разрабатывает корзину покупок, которая позволяет вам добавлять в нее прокрутки и отображать информацию в корзине покупок.Список корзин для Java Java

На данный момент я создать список массива, как это:

final ArrayList<Object> cart = new ArrayList<Object>(); 

Затем я добавить объект «шапки» в корзине

hats Hat1 = new hats ("Hat",orderprice,colourtext,quantitynum,sizetext); 

cart.add(Hat1); . 

Мой вопрос, как я тогда получаю массив для отображения Hat и его атрибутов?

Приветствия

+0

Если вы хотите дешевый противный способ сделать это, взгляните на отражение в строке из сообщества. Добавьте это в свой класс шляп, а затем toString должен распечатать все свойства. – Steven

ответ

0

Мой вопрос, как я затем получить массив для отображения Hat и его атрибуты?

Что-то вроде ниже?

final ArrayList<Object> cart = new ArrayList<Object>(); 
Hat hat =(Hat) cart.get(0); 
hat.getWatever(); 

Однако, я бы настоятельно советовал вам иметь архариста Hat вместо Object.

final ArrayList<Hat> cart = new ArrayList<Hat>(); 
hats Hat1 = new hats ("Hat",orderprice,colourtext,quantitynum,sizetext); 
cart.add(Hat1); . 
    Hat hat =cart.get(0);//notice don't need to cast 
    hat.getWatever(); 
1

Эта линия:

final ArrayList<Object> cart = new ArrayList<Object>(); 

ли, скорее всего не так, если вы действительно хотите ваш ArrayList проводить любые типы объектов. Если вы просто положить шляпы в ArrayList, затем он код, который вы дали ему должен быть:

final ArrayList<hats> cart = new ArrayList<hats>(); 

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

Вы можете просто вернуть шляпы, вызвав метод get() на свой объект ArrayList, который вернет объект типа hats.

Если вы действительно нужен универсальный тип, чтобы быть Object по какой-то причине, то вы можете сделать бросок на метод GET:

hats myHat = (hats)cart.get(0); 

... но это гораздо неприятнее с точки зрения кодирования, и обеспечивает гораздо меньшую безопасность типов, чем выбор правильного общего параметра для начала.

0

Прежде всего, советую никогда не использовать Объект в качестве общего параметра для сбора (кроме случаев, когда это действительно необходимо).

Таким образом, вы будете иметь список Шляпы:

ArrayList<Hats> cart = new ArrayList<Hats>(); 

Если вы хотите сделать что-то с целой коллекцией шляп объектов вы должны создать свой родом контейнер класса для реализации логики conserning целой коллекции, потому что класс ArrayList не обладает такой логикой.

Поэтому я бы посоветовал вам создать класс Cart, в котором будет содержаться список шляп и методов с логикой, которую вы хотите применить ко всей коллекции элементов корзины.

Например:

public class Cart { 
    private ArrayList<Hats> _hats = new ArrayList<Hats>(); 

    public List<Hats> getHats 
    { 
     return _hats; 
    } 

    public Cart() 
    { 

    } 

    public void DoSomthingWithCart() 
    { 
     ..... 
    } 
} 

В этом классе _hats будет содержать корзины товаров и в методе DoSomthingWithCart вы должны реализовать логику корзины.

Если вы пройдете этот путь, у вас будет отдельный класс для вашей тележки с коллекцией объектов и логикой корзины.

Смежные вопросы