我想解決一個問題,在隊列和產品,而不是產品作爲整數在隊列中,我需要他們更一般地存儲通過使用泛型類。但除了向類名添加通用位之外,我不知道該怎麼做。更改類到泛型
產品類:
public class Product{
private int barcode;
public Product(int barcode){
this.barcode = barcode;
}
}
而對於一個有界隊列類:
public class BQ{
private final int[] elements;
private int number, begin, end;
public BQ(int size) {
elements = new int[size];
number = 0;
begin = 0;
end = 0;
}
public void add(int item) {
...
}
public int remove(){
...
}
public boolean isEmpty(){
return number == 0;
}
}
要開始我改變了產品類:public class Product<T>
至於我知道這堂課沒有什麼需要改變的。除了條碼屬性之外,其他地方沒有其他的東西。
現在我遇到了BQ類的問題。
浮現在腦海的第一個步驟是將類更改爲:public class BQ<Product>
此代碼仍然執行,但我很難相信這其實是所有有給它。我也想知道的是,除了使用類型之外,這些變化有什麼區別?這有什麼優勢?
我不明白你想要做什麼。你是否將'條形碼'設置爲'T'?如果沒有,就像你說的那樣,你不需要它。那麼,在'BQ'中,你在哪裏使用Product? '公共類BQ'不是你想要的,這將創建一個通用的BQ類,與'Product'無關。我想你只是想創建'BQ'通用類似'BQ ',設置元素爲'T']' –
AxelH
現在產品以整數形式放入隊列中,但它們應該作爲產品存儲。所以'條形碼'不會成爲'T',但整個班級都會。但是我完全可能在這個錯誤 – mtbrands
如果你想要創建一個實例'產品'來存儲那些先前在隊列中的「整數」。你不需要通用的...如果你想然後將這些實例存儲在隊列中,你不需要通用的...'條形碼'可以具有什麼類型?它在我看來,你有項目的禿頭設計,你可能需要根據類型(代碼128,代碼39,...)具有多個「BarCode」類。 – AxelH