
泛型类原理:把出现泛型变量的地方全部替换成传输的真实数据类型

会把出现,泛型的地方全部定义为String (相当于定义的泛型之后,只能操作对应的引用类型)
这样只能操作整数
package com.itheima.d8_genercity_class;public class Test {public static void main(String[] args) {// 需求:模拟ArrayList定义一个MyArrayList,关注泛型设计MyArrayList<String> list = new MyArrayList<>();// 把出现泛型变量的地方全部替换成传输的真实数据类型list.add("Java");list.add("Java");list.add("Mysql");list.remove("Mysql");// 由于调用了ArrayList集合的方法,所以返回的是ArrayList的内容System.out.println(list);MyArrayList<Integer> list2 = new MyArrayList<>();// 这个时候创建的MyArrayList只能传入整型对象list2.add(23);list2.add(24);list2.add(25);list2.remove(25);System.out.println(list2);}}
package com.itheima.d8_genercity_class;import java.util.ArrayList;public class MyArrayList<E> { // 定义泛型类要加<E>// 创建一个私有的ArrayList集合的对象,可以用他的方法// 使用了private权限符修饰 这个对象只能在本类访问private ArrayList lists = new ArrayList();//// 其实内部用的都是ArrayList的东西public void add(E e){// 这里相当于使用别人的方法,套娃lists.add(e);}public void remove(E e){lists.remove(e);}// 重写toString方法 这里调用ArrayList集合的方法(套在里面)变成自己的一样@Overridepublic String toString() {return lists.toString(); // 重写toString方法// 返回ArrayList对象的toString方法(内容)}}
