В настоящее время я читаю урок на Java, и этот урок охватывает передачу объекта ArrayList
с помощью статического метода. В первом статическом методе вы видите, что ArrayList
нужно было объявить только как ArrayList
и имя для него. Первый статический метод отображает все элементы в массиве. Второй статический метод изменяет элементы ArrayList
. При объявлении ArrayList
в этом методе он должен быть объявлен как ArrayList<Integer>
для целей модификации. Почему это так, и почему это имеет значение? Спасибо всем, кто хочет пролить свет на это.Почему мы должны использовать Список определенного типа в Java
import java.util.ArrayList;
public class Chap11Part5
{
public static void main(String[] args)
{
ArrayList<Integer> numbers = new ArrayList<Integer>();
//For-Loop to create elements for the ArrayList
for (int i = 1; i < 11; ++i)
numbers.add(i);
display(numbers); //Display Elements
change(numbers, 5); //Change Elements (See "change" method)
display(numbers); //Display New Results
}
//Loop to display elements of ArrayList
static void display(ArrayList arr) {
for(int i = 0; i < arr.size(); ++i)
System.out.print(arr.get(i) + " ");
System.out.println();
}
//Loop to change elements of ArrayList
static void change(ArrayList<Integer> arr, int amount) {
int value;
for(int i = 0; i < arr.size(); ++i) {
value = arr.get(i);
arr.set(i, value + amount);
}
}
}
Хотелось бы знать, почему это отображается как ArrayList. Я не понимаю, почему это не соответствует правильному пути моего вопроса. Я извиняюсь. –
Этот код использует исходный тип, и он не должен. Прочитайте http://stackoverflow.com/questions/2770321/what-is-a-raw-type-and-why-shouldnt-we-use-it –
Спасибо @JBNizet –