<Integer, "sometype">
과 2 개의 HashMaps가 있습니다. 그래서 "sometype"이 다를 수 있으므로 일반화하려고했습니다.Java 제네릭 : 일반적인 메서드 호출 "... 인수에 적용 할 수 없습니다 ..."
this.input_map = MapOperations.<JComponent> rearrengeHashMapIdx(this.input_map);
번째 통화 나 제공 <Integer, CustomClass>
this.values_map = MapOperations.<UI_FieldPV>rearrengeHashMapIdx(this.input_map);
와 해시 MAP 통과하는 다음과 같다 :이 경우 내 두 한다거나 할이
private HashMap<Integer, UI_FieldPV> values_map = new HashMap<Integer, UI_FieldPV>();
private HashMap<Integer, JComponent> input_map = new HashMap<Integer, JComponent>();
방법의 첫 번째 통화가 괜찮있다 다음 오류 :
The parameterized method
<UI_FieldPV>rearrengeHashMapIdx(HashMap<Integer,UI_FieldPV>)
of typeUI.MapOperations
is not applicable for the arguments(HashMap<Integer,JComponent>)
일반 메서드가 포함 된 클래스의 코딩 (btw : 호출 클래스 내에서 일반 메서드를 만들려고했지만 작동하지 않았습니다. 나는 일반적인 방법 PARAMATERS 작동하게하는?) 그래서 내가 뭘 잘못
private static class MapOperations<T> {
public static <T> HashMap<Integer, T> rearrengeHashMapIdx(HashMap<Integer, T> source) {
HashMap<Integer, T> temp = new HashMap<Integer, T>();
for (Integer i = 0; i < 81; i++) {
Integer rowNum = (i/3) % 3;
Integer block = i/9;
Integer delta = (rowNum - block);
Integer newIdx = i + (delta * 6);
temp.put(i, source.get(newIdx));
}
return temp;
}
}
위해 내장 클래스를 생성해야합니까? 미리 도움을 주셔서 감사합니다.
그 통과 된 논증들로부터 유추되었다. –