Set <element>是什么意思?</element>

时间:2013-07-27 12:05:46

标签: java android tags set android-arrayadapter

我是Android的新手,我必须在两块PCB之间建立蓝牙连接。我在API指南中看到了一行代码,但我仍然没有弄清楚它的含义。我想知道是否有人可以帮助我。

这是代码:

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

我无法理解的是Set<BluetoothDevice>

为什么他们在"< >"之间放置一些东西。我也见过ArrayAdapter<String>。这些元素的作用是什么?

1 个答案:

答案 0 :(得分:3)

这会使Set成为Generic集合。当你声明这个:

Set<BluetoothDevice> pairedDevices

表示Set对象应仅包含BluetoothDevice类型的对象。通常建议使用通用集合,因为您可以获得类型安全的直接好处。

Java Collections Framework旨在处理任何类型的对象。在 Java 1.4 及更早版本中,他们使用java.lang.Object作为添加到集合中的任何对象的类型。您必须在使用它们时将对象显式地转换为所需的类型,否则您将遇到编译时错误。

Java 中引入的Java Generics提供了更强的类型安全性。泛型允许将类型作为参数传递给类,接口和方法声明。例如:

Set<BluetoothDevice> pairedDevices

此示例中的<BluetoothDevice>是一个类型参数。使用type参数,编译器可确保我们仅将集合与兼容类型的对象一起使用。 另一个好处是我们不需要转换从集合中获取的对象。现在可以在编译时检测对象类型错误,而不是在运行时抛出转换异常。

建议阅读:

  1. Oracle's tutorial on Generics
  2. Using and Programming Generics in J2SE 5.0
  3. Generics in Java - Wiki
  4. Java theory and practice: Generics gotchas
  5. Java Generics FAQs
  6. Covariance and contravariance