泛型,即
“
参数化类型
”
。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实
参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法
中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用
/
调用时传入具
体的类型(类型实参)。
泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参
具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类
型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。
很抽象对不对?别急,后面还有更抽象的(bushi
看个例子应该会好理解一些~
import
java
.
util
.
ArrayList
;
import
java
.
util
.
List
;
public class
test
{
public static
void
main
(
String
[]
args
) {
List list
=
new
ArrayList
();
list
.
add
(
"string"
);
list
.
add
(
100
);
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++
) {
String
name
=
(
String
)
list
.
get
(
i
);
// 1
System
.
out
.
println
(
"name:"
+
name
);
}
}
}
上述代码会出现
Exception in thread "main" java.lang.ClassCastException
错误
ArrayList
由
String
类型和
Integer
类型,而两者都以
String
格式使用,所以出现了上述错误。
这个时候泛型——闪亮登场!!
List
<
String
>
list
=
new
ArrayList
<
String
>
(); #注意!这一行替换源代码的第四行——用到了泛型
泛型接口啥的好复杂,还没来得及整明白~今天Java闭营啦,但是还需努力,加油⑧!!