제네릭 형식을 사용하여 전략 구성 요소의 구체적인 구현으로 약간의 문제가 발생했습니다. 사람이 예와 올바른 방향으로 날 지점 수 있다면전략 구성 요소의 제네릭 및 구체적인 구현
궁금하십니까?
여기는 내가으로 작업하고 있지만, ArrayList를 만들 때 Decode 메서드를 호출 할 때 Decode 메서드를 선언 할 때마다 잡히다. 놀랍지도 않습니다. 여기
public class CsvFormat<T,T1> implements FormatStrategy<T,T1> {
public CsvFormat(boolean header) {
setHeader(header);
@Override
public final T decode(T1 csvData) {
csvData = new ArrayList(); //ERROR****
List<Map<String, String>> decodedData = new ArrayList<Map<String, String>>(); //turn collection into an array of maps
if (this.hasHeader()) {
decodeDataWithHeader(csvData, decodedData);
} else {
decodeDataNoHeader(csvData, decodedData);
}
return decodedData;
}
private void decodeDataNoHeader(List<String> csvData, List<Map<String, String>> records) {
int recordCount = FIRST_IDX;
List<String> fields = null; //= Arrays.asList(csvData.get(recordCount).split(DELIM)); //turn line into a list, first record
for (String data : csvData) { //for each unformatted string
int delimIndex = FIRST_IDX; //reset delim
fields = Arrays.asList(data.split(DELIM));//after header, start mapping
records.add(new LinkedHashMap<String, String>()); //make a new map
recordCount++;
for (String field : fields) {
final String KEY_ID = "Column-" + (delimIndex + RECORD_BUFFER);
records.get(records.size() - RECORD_BUFFER).put(KEY_ID, field);
delimIndex++;
}
}
}
내가 .. 로 지금까지 생각할 수있는 오류들이 전달되는 어떤 객체를 기반으로 디코드 메소드를 오버로드하는 것입니다 않고 위 달성하는 유일한 방법을 시작했다 무엇인가
public class CsvFormat implements FormatStrategy<
List<Map<String, String>>, List<String>> {
public CsvFormat(boolean header) {
setHeader(header);
}
@Override
public final List<Map<String, String>> decode(List<String> csvData) {
List<Map<String, String>> decodedData = new ArrayList<Map<String, String>>(); //turn collection into an array of maps
if (this.hasHeader()) {
decodeDataWithHeader(csvData, decodedData);
} else {
decodeDataNoHeader(csvData, decodedData);
}
return decodedData;
}
private void decodeDataNoHeader(List<String> csvData, List<Map<String, String>> records) {
int recordCount = FIRST_IDX;
List<String> fields = null; //= Arrays.asList(csvData.get(recordCount).split(DELIM)); //turn line into a list, first record
for (String data : csvData) { //for each unformatted string
int delimIndex = FIRST_IDX; //reset delim
fields = Arrays.asList(data.split(DELIM));//after header, start mapping
records.add(new LinkedHashMap<String, String>()); //make a new map
recordCount++;
for (String field : fields) {
final String KEY_ID = "Column-" + (delimIndex + RECORD_BUFFER);
records.get(records.size() - RECORD_BUFFER).put(KEY_ID, field);
delimIndex++;
}
}
}
좋습니다. 따라서 FormatStrategy의보다 구체적인 클래스를 구현하고 그런 식으로 작업 할 것입니다. 감사합니다. 도망 가기 전에 물어 봤기 때문에 기쁘다. 코드를 엉망으로 만들기 시작했다. 나는이 일반 유형으로 얼마나 멀리 달릴 수 있는지 알지 못했지만 지금은 그렇게하고 있습니다. 고맙습니다. – nckbrz