在Android中添加类语法

时间:2017-01-11 14:00:18

标签: java android

< >中的班级名称是什么意思?

public class classA extends classB <classC>

我知道继承,但确切地想知道< >

classB <classC>的含义

仅供参考:classA.javaclassB.java位于项目的同一文件夹下。 classC.java位于项目的不同文件夹中。

1 个答案:

答案 0 :(得分:2)

以下是

中接口ListIterator定义的摘录。

package java.util

public interface List <E> {
    void add(E x);
    Iterator<E> iterator();
}

public interface Iterator<E> {
    E next();
    boolean hasNext();
}

这个代码应该都很熟悉,除了尖括号中的东西。这些是接口ListIterator的正式类型参数的声明。

类型参数可以在整个泛型声明中使用,几乎可以使用普通类型(虽然有一些重要的限制;请参阅精细打印一节。

在简介中,我们看到了泛型类型声明List的调用,例如List<Integer>。在调用(通常称为参数化类型)中,所有出现的形式类型参数(在本例中为E)都被实际类型参数(在本例中为Integer)替换。

您可能会认为List<Integer>代表的是E已被Integer统一替换的列表版本:

public interface IntegerList {
    void add(Integer x);
    Iterator<Integer> iterator();
}

这种直觉可能会有所帮助,但也会产生误导。

这很有用,因为参数化类型List<Integer>确实具有看起来像这种扩展的方法。

这是误导性的,因为泛型的声明从未以这种方式实际扩展。没有多个代码副本 - 不是源代码,不是二进制代码,不是磁盘而不是内存。如果您是C++ programmer,您就会明白这与C++ template非常不同。

泛型类型声明一劳永逸地编译,并转换为单个class文件,就像普通的classinterface声明一样。