2012-10-24 1 views
3

나는이 방법()이 있습니다ArrayList는 원시 형식입니다. 제네릭 형식의 ArrayList <E>에 대한 참조해야 매개 변수

private List<? extends Map<String, String>> creaListaDeGrupos() { 

     ArrayList resultado_padre = new ArrayList(); 
     for (int i = 0; i < listadoPartidas.getPartidas().size(); i++) { 
      HashMap<String, String> padre = new HashMap<String, String>(); 
      padre.put("posicionLista", posicionlista.get(i)); 
      padre.put("codigo", codigoBaremo.get(i)); 
      padre.put("descripcionBaremo", descripcionBaremoPadre.get(i)); 
      padre.put("cantidad", cantidad.get(i)); 
      padre.put("importe", importe.get(i)); 
      padre.put("estado", estado.get(i)); 
      padre.put("observaciones", observaciones.get(i)); 
        resultado_padre.add(padre); 
     } 
return resultado_padre 
} 

와 보풀이 나에게 오류 반환 :

ArrayList is a raw type. References to generic type ArrayList should be parameterized

을하지만 난 할 기운을

ArrayList<String> resultado_padre = new ArrayList(); 

이 문자열의 arraylist 아니므로, 어떤 유형의 흉상 것인가?

답변

0
private List<Map<String, String>> creaListaDeGrupos() { 

      List<Map<String, String>> resultado_padre = new ArrayList<Map<String, String>>() ; 
      for (int i = 0; i < listadoPartidas.getPartidas().size(); i++) { 
       Map<String, String> padre = new HashMap<String, String>(); 
       padre.put("posicionLista", posicionlista.get(i)); 
       padre.put("codigo", codigoBaremo.get(i)); 
       padre.put("descripcionBaremo", descripcionBaremoPadre.get(i)); 
       padre.put("cantidad", cantidad.get(i)); 
       padre.put("importe", importe.get(i)); 
       padre.put("estado", estado.get(i)); 
       padre.put("observaciones", observaciones.get(i)); 
       resultado_padre.add(padre); 
      } 
return resultado_padre 
} 
+0

형식 불일치 될 것입니다 참조 : <지도 <문자열, 문자열 >>의 ArrayList > – colymore

+0

죄송에 ArrayList의에서 변환 할 수 없습니다. 그게 효과가있다. – Harry

1

당신은 당신이 반환하는 동일한 유형을 만드는 시도 할 수 : 구현 유형을 선언 할 필요, 즉 ArrayList

List<HashMap<String, String>> = new ArrayList<HashMap<String, String>>(); 

없습니다. List 인터페이스가 더 일반적이므로 변수를 구체적인 유형으로 선언 할 때 이것이 필요한지 스스로에게 질문하십시오. Programming against interface

+0

예! 그것은 작동합니다, 고마워요 – colymore

+0

@colymore 환영합니다 :) – kostja

+0

마찬가지로 DRY 정신으로 equals의 오른쪽에 특정 제네릭을 복제 할 필요가 없습니다 : List > = new ArrayList <>(); – geowar

0

그것은 ArrayList<HashMap<String, String>>

관련 문제