Возможно ли иметь несколько методов с тем же именем, но принимает разные типы списков. Это, конечно, работает через переопределение, но java не может сказать разницу между двумя разными типами списков. Есть ли способ обойти это иначе, чем иметь разные имена? Например:java принимает разные типы списков с тем же именем метода
/**
* Prints a given in list, only works on numerical types
*/
public static void printList(List list) {
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
if (i != list.size() - 1) System.out.print(", ");
}
System.out.println();
}
не будет работать, если мы имеем
/**
* Prints a given in list of Vector3i
*/
public static void printList(List<Vector3i> list) {
for (int i = 0; i < list.size(); i++) {
System.out.print("(");
System.out.print(list.get(i).x);
System.out.print(", ");
System.out.print(list.get(i).y);
System.out.print(", ");
System.out.print(list.get(i).z);
System.out.print(")");
if (i != list.size() - 1) System.out.print(", ");
}
System.out.println();
}
в том же классе.
Вы не должны использовать 'List'. Это в основном ** Raw Type **. Это означает, что ваш первый метод примет любой тип, который наследует «Object». Таким образом, ваши оба метода могут использовать тип 'Тип'' Vector3i'. Итак, есть столкновение. – Blip