java中什么叫泛型?

Python033

java中什么叫泛型?,第1张

泛型。规定了此集合中元素的类型。例如:\x0d\x0a\x0d\x0aArrayList arr = new ArrayList ()\x0d\x0a\x0d\x0a这样就创建了一个包含整数的 ArrayList 对象。\x0d\x0a如果要自己定义泛型类,就用如下形式:\x0d\x0a\x0d\x0aclass MyCollection {...}\x0d\x0a\x0d\x0a尖括号中的类型可以有限制,例如你需要让 MyCollection 中的类型都具有可比性,可以用如下格式:\x0d\x0a\x0d\x0aclass MyCollection {...}\x0d\x0a\x0d\x0a此外,要注意泛型的一些特性:\x0d\x0a\x0d\x0a1. 不能直接创建泛型数组。如 new ArrayList[5] 之类的是错的。只能用如下方法:new ArrayList[5] 或者 (ArrayList[])new ArrayList[5]\x0d\x0a\x0d\x0a2. 静态方法中需要小心,因为 E 一般是非静态类型,如果你这样写:\x0d\x0a class MyCollection {\x0d\x0a public static MyCollection abc() {\x0d\x0a ......\x0d\x0a }\x0d\x0a }\x0d\x0a 是错的。你只能把 去掉。

我来简述一下泛型的知识吧:

如果一个类的后面跟上一个尖括号,表示这个类是泛型类.

可以这样声明:class 名称<泛型列表>

如:class A<E>

其中A是泛型类的名称,E是泛型.(可以是任何对象或接口)

其中给出的泛型可以作为类的成员变量的类型,方法的类型以及局部变量的类型.类体和变通类完全一样,由成员变量和方法构成.

举个例子:

class Chorus<E,F>

{

void makeChorus(E person,F yueqi)

{

yueqi.toString()

person.toString()

}

}

--------------

上面的类中将类E和类F作为类Chorus的一部分来使用.这就是泛型类的目的,将多个类包含进一个类来使用!!!

如果你想深入理解就可以找一些书来看,一些基本的教材里面也都有提到泛型的.

希望我说的对你有所帮助!!!

这是在各种Java泛型面试中,一开场你就会被问到的问题中的一个,主要集中在初级和中级面试中:

1:什么是泛型?

泛型就是广泛的类型,也是一种数据类型,而这种数据类型可以是任意类型,编写过程中当中不能确定类型,创建对象时必须指定具体类型,不指定也可以,但是会出现一些错误。

泛型是编译器行为,只能在编译期有效,如果能够跨过编译器,那么泛型就没有任何意义了。

2、泛型类

怎么定义泛型类?

在类后面加<>,<>中可以编写任意长度任意字符,不能是数值。(一般用26个大写英文字母表示)

泛型类 <具体类型> 变量名 = new 泛型类<>()

3.怎么使用泛型

有以下几种使用场景以及放在那种位置

泛型只能定义引用数据类型,而不能使用基本数据类型

泛型类、泛型方法、泛型接口、泛型通配符

例如:作用在类上时( public class Animal <E>{ E pet} ) , 泛型跟在类后边,可以指定用了泛型的类内部的 pet 的类型。

作用在对象上时( Animal<Dog>str = new Animal<Dog>()) , 泛型跟在类后边 , 使得对象类的的 pet 属性为 Dog类型。