キューとプロダクトでは、キュー内に整数としてプロダクトを置く代わりに、ジェネリッククラスを使用してより一般的に格納する必要がある問題を解決しようとしています。しかし、クラス名に汎用ビットを追加することとは別に、私は何をすべきか分かりません。クラスをジェネリック型に変更する
製品クラス:
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;
}
}
私はProductクラスを変更し起動するには:私の知る限りとしてpublic class Product<T>
このクラスでは何も変わっていないことを知っています。バーコード属性を除いて、他には何もありません。
今、私はBQクラスの問題に遭遇しています。
心に来た最初のステップはにクラスを変更しました:public class BQ<Product>
このコードはまだ実行しますが、私はそれは難しい、これはこれで全部実際にある信じることを見つけます。私が知りたいことは、タイプを使用することからだけでなく、これが何の利点であるかということです。
私はあなたがしようとしているものは得られません。あなたは 'バーコード'を 'T 'として設定していますか?そうでない場合、あなたが言ったように、あなたはそれを必要としません。次に、 'BQ'では' Product'をどこで使用していますか?そして 'public class BQ'はあなたが望むものではありません。これはGeneric BQクラスを作成し、 'Product'とは何も関係ありません。私は 'BQ 'のような 'BQ'ジェネリックを作成し、要素ilke' T [] 'を設定したいと思います。 –
AxelH
現在、製品は整数としてキューに入れられていますが、商品として保存する必要があります。だから 'バーコード'は 'T'にはならないだろうが、クラス全体がそうであろう。しかし、私はこれで完全に間違っている可能性があります – mtbrands
あなたが望むものが、それらの '整数 'を以前にキューに格納するインスタンス' Product'を作成することであれば。ジェネリックは必要ありません...キューにそれらのインスタンスを格納したい場合は、一般的なものは必要ありません。どのようなタイプのバーコードがありますか?あなたのプロジェクトをバランスよくデザインすることができます。タイプ(コード128、コード39、...)に応じて、BarCodeのクラスを複数用意したいと思うかもしれません。 – AxelH