第八章 泛型
一、填空题
1.泛型的作用是支持类型参数化。
2.泛型可以用在类、接口和方法的定义中,分别称为泛型类、型接口和 泛型方法。
3.在Java程序中,经常会有参数类型或返回值类型不确定的方法,这种方法在Java中统称为泛型方法。
4.泛型接口的实现类有两种定义方式,一种是直接接口中明确地给出泛型类型,另一种是直接在实现后声明泛型。
二、判断题
1.在泛型<T>中,T不可以使用其他字母代替。错
2.在实际应用中,只有泛型类被使用时,该类所属的类型才能被明确。对
3.合理使用泛型可以避免在程序中进行强制类型转换。对
4.定义泛型方法时,返回值类型必须写在类型参数列表的后面。对
5.在泛型中,类型参数可以用在方法体中修饰局部变量,也可以修饰方法的返回值。对
三、选择题
1.下列关于泛型的说法中,错误的是(D)
A、泛型是JDK5.0的新特性
B、ArrayList<E>中的E称为类型变量或类型参数
C、泛型中的通配符?用于表示任意类型
D、在对泛型类型进行参数化时,类型参数的实例必须是基本类型
2.下列选项中,哪个可以正确地定义一个泛型(A)
A、ArrayList<String>list=newArrayList<String>();
B、ArrayListlist<String>=newArrayList();
C、ArrayListlist<String>=newArrayList<String>();
D、ArrayList<String>list=newArrayList();
3.Java中,在没有泛型之前,集合把所有对象当成哪种类型的数据进行处理(A)
A、Object B、String C、int D、数组
4.在Java程序开发中,使用泛型进行程序开发的优点有(AC)(多选)
A、提高代码的可重用性
B、提高代码的可读性
C、在编译器进行类型检查,保证类型安全
D、以类型转换异常的形式保证类型安全
简答题
1.简述泛型的优点。
(1)提高类型的安全性。
泛型的主要目标是提高Java程序的类型安全性,即可以通过泛型定义对变量类型进行限制,在对变量类型限制之后编译器可以更好的进行类型验证。
(2)避免强制类型转换。
使用泛型的另一个好处是避免源代码中的许多强制类型转换。这使得代码可读性更高,并且减少出错机会。尽管减少强制类型转换可以降低使用泛型类代码的复杂度,但是声明泛型变量会带来相应的复杂操作。
编程题
请按照下列提示编写一个泛型接口以及其实现类。
提示:
创建一个泛型接口Generic<T>,并创建一个抽象方法get(T t)。
创建一个实现类GenericImpl<T>,空实现get(T t)方法。
interface Generic<T>{
public abstract T get(T t);
}
class GenericImpl<T> implements Generic<T>{
public T get(T t){
System.out.println(t);
return t;
}
}
public class Examplle{
public static void main(String[]args) {
Generic<String> gen1=new GenericImpl<String>();
gen1.get("Hello");
Generic<Integer> gen2=new GenericImpl<>();
gen2.get(2);
}
}
或
interface Generic<T>{
public abstract void get(T t){}
}
class Generic<T> implements Generic{
public void get(T t){}
}