Python之父大喊Yes!吴恩达:松了口气
|
Oracle建议使用大写字母表示泛型类型,并选择更具描述性的字母来表示形式类型,例如在Java集合中,T 用于类型,K 表示键,V 表示值。 3.1.泛型边界 如前所述,类型参数可以是有界的。有界意味着“限制”,我们可以限制方法可以接受的类型。 例如,可以指定一个方法接受一个类型及其所有子类(上限)或一个类型所有它的超类(下限)。
要声明上界类型,我们在类型后面使用关键字extends,后跟要使用的上限。例如: 通过添加包含类型的菱形运算符<>,我们将此列表的特化范围缩小到 Integer 类型,即指定将保存在列表中的类型。编译器可以在编译时强制执行该类型。 在较小的程序中,这看起来像是一个微不足道的添加。但是在较大的程序中,这可以增加显著的健壮性并使程序更易于阅读。 3. 泛型方法 泛型方法是用单个方法声明编写的方法,可以用不同类型的参数调用。编译器将确保所用类型的正确性。以下是泛型方法的一些属性:
定义将数组转换为列表的泛型方法的示例: 没有任何约定可以保证列表的返回类型是整数。定义的列表可以包含任何对象。我们只知道我们是通过检查上下文来检索列表的。在查看类型时,它只能保证它是一个Object,因此需要显式转换来确保类型是安全的。 这种转换可能会令人感到聒噪,我们明明知道这个列表中的数据类型是整数。转换的话,也把我们的代码搞得乱七八糟。如果程序员在显式转换中出错,则可能会导致抛出与 类型相关的运行时错误 。 如果程序员能够表达他们使用特定类型的意图,并且编译器能够确保这种类型的正确性,那么这将更加容易。 这就是泛型背后的核心思想。
我们将前面代码段的第一行修改为: aster节点包括API Server、Scheduler、Controller manager、etcd。 API Server是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。 Scheduler负责对集群内部的资源进行调度,相当于“调度室”。 Controller manager负责管理控制器,相当于“大总管”。
然后是Node节点。 (编辑:平顶山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


