0

私はAndroidが初めてで、2つのPCB間でBluetooth接続を行う必要があります。API ガイドでコード行を見ましたが、それが何を意味するのかまだわかりません。誰かが私を助けてくれるのだろうか。

そのコードは次のとおりです。

Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();

私が理解できないのはSet<BluetoothDevice>

なぜ彼らは間に何かを置くのですか"< >"?よりも見たことがあるArrayAdapter<String>。これらの要素は何をしますか?

4

1 に答える 1

3

これにより、Set汎用セットが作成されます。これを宣言すると:

Set<BluetoothDevice> pairedDevices

は、Setオブジェクトが type のオブジェクトのみを含む必要があることを意味しますBluetoothDevice。タイプ セーフの利点がすぐに得られるため、通常はジェネリック コレクションを使用することをお勧めします。

Java Collections Framework は、あらゆるタイプのオブジェクトを処理できるように設計されています。Java 1.4以前では、コレクションに追加された任意のオブジェクトの型として使用されjava.lang.Objectていました。オブジェクトを使用するときに、オブジェクトを目的の型に明示的にキャストする必要がありました。そうしないと、コンパイル時にエラーが発生します。

Java 5で導入された Java Generics は、より強力な型安全性を提供します。ジェネリックを使用すると、型をパラメーターとしてクラス、インターフェイス、およびメソッドの宣言に渡すことができます。例えば:

Set<BluetoothDevice> pairedDevices

この<BluetoothDevice>例の は型パラメーターです。型パラメーターを使用すると、コンパイラは、互換性のある型のオブジェクトのみでコレクションを使用することを保証します。もう 1 つの利点は、コレクションから取得したオブジェクトをキャストする必要がないことです。オブジェクト型エラーは、実行時にキャスト例外をスローするのではなく、コンパイル時に検出されるようになりました。

推奨読書:

  1. ジェネリックに関する Oracle のチュートリアル
  2. J2SE 5.0 でのジェネリックの使用とプログラミング
  3. Java のジェネリック - Wiki
  4. Java の理論と実践: ジェネリックの落とし穴
  5. Java ジェネリックに関するよくある質問
  6. 共分散と反分散
于 2013-07-27T12:07:26.050 に答える