(AdapterView<?>parent,Viewview,intposition,longid)<?>符号有什么作用?

我知道这很简单,但我在 Android 开发人员网站上找不到符号列表及其含义。只想知道是什么?符号通常在 Java 中表示;以及它的含义是否因情况而异。

例如,如果在 (AdapterView<?> parent, View view, int position, long id) 中使用,则含义发生变化,而不是另一种使用;我不会想象它会,但我想我会问以防万一。

谢谢!

回答

这是一个通配符。<?> 与 <? 扩展对象> - 任何类型。通常使用通配符的方式是 <? extends Foo>(任何扩展 Foo 的类)或 <? super Foo>(任何属于 Foo 超类型的类)

下面是一个 <?> 用法示例:

考虑以下方法,printList:

public static void printList(List<Object> list) {
for (Object elem : list)
System.out.println(elem + " ");
System.out.println();
}

printList 的目标是打印任何类型的列表,但它没有达到这个目标——它只打印了一个 Object 实例列表;它不能打印 List、List、List 等,因为它们不是 List 的子类型。要编写通用的 printList 方法,请使用 List<?>:

public static void printList(List<?> list) {
for (Object elem: list)
System.out.print(elem + " ");
System.out.println();
}

因为对于任何具体类型 A,List 是 List<?> 的子类型,所以可以使用 printList 打印任何类型的列表:

List<Integer> li = Arrays.asList(1, 2, 3);
List<String> ls = Arrays.asList("one", "two", "three");
printList(li);
printList(ls);

有关更多信息,请参阅:通配符(Java™ 教程 > 学习 Java 语言 > 泛型(更新))


以上是(AdapterView&lt;?&gt;parent,Viewview,intposition,longid)&lt;?&gt;符号有什么作用?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>