2013-05-30 3 views
-4

Im 매우 새로운 Java 및 im은 현재 prodcuts를 추가하고 장바구니에 whats를 표시 할 수있는 장바구니를 디자인하고 있습니다. 순간 Java 장바구니 배열 목록

나는이 같은 배열 목록 작성 :

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

그때 쇼핑 카트에 개체 "모자"를 추가를

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

cart.add(Hat1); . 

내 질문은 내가 다음을 얻는 방법이다 모자와 그 속성을 표시하는 배열?

건배

+0

값 싸고 고약한 방법을 원할 경우 commons-lang에서 문자열을 반사시켜보십시오. 이것을 당신의 hats 클래스에 추가하면 toString은 모든 속성을 출력해야합니다. – Steven

답변

0

내가 그 배열이 모자와 특성을 어떻게 표시합니까 내 질문?

다음과 같은 메시지가 표시됩니까?

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

그러나, 나는 강력하게 모자 대신 객체의 ArrayList를가하도록 조언한다.

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

이 라인 : 당신이 정말로 당신의 ArrayList가 어떠한 객체 유형을 유지하고 싶어하지 않는

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

는 가능성이 잘못된 것입니다. 나는 자바 규칙을 따라야하기 위해 이름을 변경하는 게 좋을 것하지만, 수업 시작해야 ...

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

: 그냥 ArrayList의에 모자를 넣어 경우, 그는 코드에 의해 당신은 그것이 있어야 준 대문자와 변수는 소문자 문자로 구분되며 다른 문자는 구분되지 않습니다.

당신은 단지 형 hats의 객체를 반환됩니다 ArrayList 객체에 get() 메서드를 호출하여 모자를 가져 오지 수 있습니다. 당신이 정말로 어떤 이유로 Object을 할 제네릭 타입을해야하는 경우

것은, 당신은 get 메소드에 캐스트 할 수 있습니다

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

을 ...하지만 코딩 관점에서 매우 지저분하고, 그리고 로 시작하는 올바른 제네릭 매개 변수를 선택하는 것보다 훨씬 적은 유형 안전성을 제공합니다.

0

우선 내가 사용하지 않는 조언은 컬렉션에 대한 일반적인 매개 변수로 객체를 사용하지 않습니다 (실제로 필요한 경우 제외). 당신은 당신이 전체 수집을 conserning 로직을 구현하는 컨테이너 클래스의 일종을 만들어야합니다 객체 모자의 전체 컬렉션 뭔가를하려는 경우,

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

:

따라서 당신은 모자의 목록이있을 것이다 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 방법에 당신은 당신의 카트 로직을 구현해야합니다.

이 방법을 사용하면 장바구니에 대한 별도의 수업을 개체 및 장바구니 논리와 함께 사용할 수 있습니다.