Java语法大于/小于:<>他们是特定班级吗?

时间:2011-05-19 19:15:53

标签: java generics inheritance

我一直在做一个Android教程,遇到了一个包含以下内容的类:

public class ImageAndTextAdapter extends ArrayAdapter<String> {

<String>是一种类型的继承形式吗?或者是我应该了解的其他Java语法?

课程是:

android.widget.ArrayAdapter<String>

4 个答案:

答案 0 :(得分:20)

这称为泛型<>中的类是类型参数

这是一个最简单的例子:

ArrayList可以存储商品。如果您指定类似这样的类型参数:ArrayList<String>,则此数组列表将仅存储String类型的项目(换句话说,它将仅存储String)!

同样,ArrayAdapter也是一种类型的“参数化”。 ArrayAdapter可能包含一个值,此值将是<>之间指定的类型,在您的情况下为String

有用的链接:

答案 1 :(得分:4)

那是Java Generics

就像C ++模板一样。

它表示ArrayAdapter由一个字符串数组支持。它最有用,所以当你获得/添加对象时,它是类型安全的,你不必执行任何转换。

答案 2 :(得分:3)

这是在Java1.5中引入的Generics的一部分。有时您不知道可以传递或获取的对象类型,因此您可以传递泛型类型的对象"?"。在此特定实例中,您将传递包含String对象的ArrayAdapter对象。你可以阅读更多http://en.wikipedia.org/wiki/Generics_in_Java

答案 3 :(得分:1)