在学习安卓的过程中,发现java
的泛型机制特别的好用,Objective-C
是一门动态性弱类型语言,例如毫无关系的两个类A
和B
,A *a = [[B alloc] init]
在Objective-C
编译和运行中都不会出错。但是A a = new B()
在java
中编译失败。这样,可以强制编程人员注意类型转换。
在不了解Objective-C
的泛型之前,我一直以为Objective-C
的泛型是鸡肋,例如:
|
我声明一个NSString
类型的泛型数组,但是我往数组中添加的是一个NSObject
类型的对象,虽然编译器会警告,但并不会报错(大部分程序猿也会忽略这个警告)。所以,我认为Objective-C
的泛型是鸡肋。当然,这只是我之前的自以为(还是自己学的不深入)。但是今天看过一篇介绍Objective-C
的泛型以后,才发现Objective-C
也能做到编译时报错。