아래의 방법으로 csv 파일을 읽으려면 SuperCSV 라이브러리를 사용하고 있습니다. 그러나이 메서드는 Collection<Object>
을 반환하며 Collection<Double>
이 필요합니다. 나는 이미 모든 셀을 Double으로 변환하는 Optional(new ParseDouble())
프로세서를 사용하고있다.콜렉션 <Object> 콜렉션 <Double> (자바)
질문은 어떻게 변환합니까/캐스팅합니까/아니면 다른 방법입니까?
가능한 경우이 메서드는 자주 호출되므로 값 비싼 작업을 피할 필요가 있습니다.
private static Collection<Object> partialReadWithCsvMapReader(int row, String[] header, CellProcessor[] processors) throws Exception {
ICsvMapReader mapReader = null;
Map<String, Object> rowMap = null;
try {
mapReader = new CsvMapReader(new FileReader(CSV_FILENAME), CsvPreference.STANDARD_PREFERENCE);
mapReader.getHeader(true);
while((rowMap = mapReader.read(header, processors)) != null) {
if(mapReader.getLineNumber() == row){
break;
}
}
}
finally {
if(mapReader != null) {
mapReader.close();
}
}
return rowMap.values();
}
문제는 SuperCSV 라이브러리의 맥락에서이다. 개별 값이 프로세서에서 이미 Doubles로 변환되었으므로 컬렉션을 다시 한 번 변환하지 않고
Collection<Double>
을 반환 할 수 있습니다.
질문이 있으십니까? –
@ SkaryWombat 예 어떻게 변환합니까? 나는 그 질문이 분명하다고 확신한다. –
* 질문이 확실한 것으로 확신합니다 * 대답은 –