2012-06-01 7 views
-3

ArrayList에서 객체를 가져 와서 변수에 넣는 것에 익숙하지만이 객체에 어려움이있는 것 같습니다.Java의 목록에서 객체 가져 오기

여기에 좀 더 구체적이고 코드의 중복성을 제거하는 업데이트가 있습니다.

쿼리는 숫자 목록을 반환합니다. 그 사람을 index[0]에 데려 가기로되어 있습니다. index[0]의 값은 입니다. 내가 작성한 쿼리는 예상 값이있는 목록을 반환합니다.

지금 내가 만든 코드는 이것이다 :

List noByDivision = dao.getNumber(division); 
Number noOfRoutes = (Number)noByDivision.get(0); 

두 번째 줄은 noOfRoutes(Number)noByDivision.get(0);에서 데이터를 두지 않습니다. 누구든지 그 데이터를 얻는 방법을 제안 할 수 있습니까?

try{ 
    List<List<Number>> getFromDatabase = dao.getBoxes(); 
    List<Number> listFromQuery = getFromDatabase.get(0); 
    Number noOfBoxes = listFromQuery.get(0); 
}catch(Exception e){ 
    System.out.println(e.getMessage()) 
} 

을 코드의 당신의 조각에서 런타임 예외가 어떤 종류의 확인 :

+6

어떤 오류가 발생합니까? – kostja

+1

그리고 정말로 dao에서 목록의 목록을 다시 받으시겠습니까? –

+0

여기에 많은 정보를 제공하지 않습니다. 1. 오류 란 무엇입니까? 2. 데이터베이스에서 검색된 목록에 다른 목록이 포함되어 있다고 가정합니다 (캐스트가 작동한다고 가정). 리스트'listFromQuery'가 하늘이고 IndexOutOfBoundsException을 던질 가능성이 있습니까? –

답변

0

나는 당신이 당신의 코드를 이런 식으로 변경하는 것이 좋습니다.

예외가 throw되지 않으면 noOfBoxes은 단순히 null입니다.

+0

감사합니다! – Nicole

+0

기이한데, "java.lang.String을 java.lang.Number로 형변환 할 수 없다"고 말합니다. – Nicole

+0

@ Nicole 그래서 'String'은'Number'가 아닌 것 같습니다 :) 구문 분석해야합니다. 예를 들어,'Integer.getInteger (noOfBoxes)'또는 다른 숫자 형을 사용하면 ... – davioooh