1

ジェネリックを使用すると、コードが必要以上に混乱し始めた作業コードがいくつかあります。

ジェネリックを廃止して、メンバー型、コンストラクター型、メソッド パラメーター型、およびメソッド戻り型のインターフェイスを使用することは可能ですか?

上記のインターフェイスを使用すると提供されない、ジェネリックは何を提供しますか? ジェネリックは要素を取得するときにコンパイル時のチェックを行うことを理解していますが(昔のように間違ったキャストを停止するため)、必要なインターフェイスのサブタイプではないタイプを挿入しようとした場合、コンパイラは検出しませんか?

4

2 に答える 2

5

ジェネリックは、コレクションをよりタイプ セーフにします。

作業コードでコレクションが広範囲に使用されている場合は、ジェネリックに固執することをお勧めします。

さらに、悪名高いことわざが「実装ではなくインターフェースでプログラムする」と述べているように、インターフェースは型の安全性よりも柔軟性を目的としています。

ジェネリックは、クラス、メソッド、インターフェイス、変数、コンストラクターにも使用されます。等....

詳細については、次のリンクを参照してください。

http://en.wikipedia.org/wiki/Generics_in_Java

http://www.oracle.com/technetwork/articles/javase/generics-136597.html

于 2012-07-13T09:12:14.287 に答える
0

インターフェイスは、クラスが常にどのように動作する必要があるかをすべての人に通知します。一方、型パラメーター (ジェネリック) を使用すると、特定のインスタンスでクラスがどのように動作するかをクライアントが決定できます。

型パラメーターは、メソッドとフィールドの 1 つのセットだけで一連のオブジェクト型を処理できるようにすることで、クラスをジェネリックにし、特定のインスタンスごとに指定された型のみが使用されていることを確認するコンパイル時のチェックを提供します。

インターフェイスを使用してこのような柔軟性を提供しようとすると、同じメソッドとクラスの複数のバージョンを作成する必要があります。各バージョンは基本的に同じことを行いますが、明示的な型は異なります。これは、何も追加せずに退屈で (カット アンド ペースト エラーにつながります)、かさばります。

一般的な構文は少し奇妙に見えますが、すぐに慣れるので、山かっこの最初の見苦しさで強力な機能を利用するのをやめないでください。

于 2012-07-14T20:56:42.827 に答える