网站建设收费标准公司,网上书店网站模板,竞价代运营公司,上海人才市场招聘网定义#xff1a;在编译过程中约束操作的数据类型。#xff08;统一数据类型#xff09;
格式#xff1a;数据类型
泛型中不能写基本数据类型。
泛型类
在一个类中#xff0c;某个变量的数据类型不确定时#xff0c;可以定义带有泛型的类。
泛型的底层是Obje…定义在编译过程中约束操作的数据类型。统一数据类型
格式数据类型
泛型中不能写基本数据类型。
泛型类
在一个类中某个变量的数据类型不确定时可以定义带有泛型的类。
泛型的底层是Object类所以调用Object来书写方法。
package test02;import java.util.Arrays;public class MyArrayList E{Object[] objnew Object[10];//编写Object类型的数组int size;//编写添加元素方法public boolean add(E e) {obj[size]e;size;return true;}//编写得到public E get(int index) {return (E)obj[index];}public String toString() {return Arrays.toString(obj);}
}public class test {public static void main(String [] args) {MyArrayListString listnew MyArrayList();list.add(aaa);list.add(bbb);String strlist.get(0);System.out.println(str);System.out.println(list);}
}泛型方法
方法中形参类型不确定时可以使用类名后面的泛型也可以在方法申明上定义自己的泛型。
小练习定义一个工具类ListUtil类中定义一个静态方法addAll用来添加多个集合的元素。
package test02;
import java.util.ArrayList;
public class ListUtil {public staticE void adddAll(ArrayListElist,E e1,E e2,E e3) {list.add(e1);list.add(e2);list.add(e3);}
}public class test {public static void main(String [] args) {ArrayListString list1new ArrayList();ListUtil.adddAll(list1,aaa, bbb, ccc);System.out.println(list1);}
}泛型接口
举例public interface ListE{
}
两种使用方式实现类给出具体的类型实现类延续泛型创建实现类对象时再确定类型。
泛型的继承和通配符
泛型不具有继承性但数据具有继承性。
泛型通配符
extends E:可以传递E或E所有的子类类型。
? super E可以传递E或E所有的父类类型。