-3
所以即時創建一個通用數組列表和即時通訊與get方法的問題。我有它驗證索引參數,但我也希望它不使用get方法,如果輸入的參數超出範圍。因此,如果有人要求它在索引爲20時獲得一個值,那麼只有10個索引時,它會顯示一條錯誤消息並運行下一個代碼。 現在它會顯示我的錯誤消息,仍然嘗試使用get方法。通用數組列表問題與get方法(Java)
public class GenericList<X> {
// Use an array to create the list
private X arr[];
private int size;
//Constructor for objects of class GSL
public GenericList(){
this.newArray();
}
// Create a new array
private void newArray(){
arr = (X[]) new Object[10];
size = 0;
}
// Expand array
private void expandArray(){
X[] arr2;
arr2 = (X[]) new Object[(int)(arr.length * 1.2)];
//Copy elements from arr to arr2
for (int i = 0; i < arr.length; i++)
arr2[i] = arr[i];
//Have arr point to new array
arr = arr2;
}
//Return the size of the list
public int size(){
return size;
}
// Add a value to the list
public void add(X value){
if (size == arr.length){
this.expandArray();
}
arr[size] = value;
size++;
}
// Get the value at the specified location in the list
public X get(int index){
if (index < 0 || index >= size)
System.out.println("Index out of bounds");
return arr[index];
}
基本上,如果我運行這個測試代碼:
GenericList<Integer> arr = new GenericList();
list.add(27);
list.get(100);
list.get(0);
這將創建一個數組,添加27到第一個索引,那麼它會停下來給我的錯誤在list.get(100 )。 我試圖讓它在該測試中拋出一個錯誤,然後跳過它並運行list.get(0)。
當你問一個問題,你的代碼中的錯誤,這將是明智的和有益的發佈完整的錯誤消息,並指示你的代碼是哪一行導致它的。 –
如果索引超出範圍,則需要引發異常。你的代碼不會這樣做。 –
異常在線程「主要」 java.lang.Error的:未解決的問題,編譯: \t此方法必須返回一個類型X的結果 \t在GenericList.get(GenericList.java:52) – PFKrang