泛型什么鬼?为什么要引用泛型?
也不是那个瘪犊子发明泛型,导致我困惑了好久;引用泛型能干嘛,当让是偷懒了,为了让自己的代码看上去高大上点;当然他也是Java支持一种的规则。
思考:当初也不知道为什么,就是不懂泛型是什么,总是看着别人写,这样用,这样这样对就这样,你就学会了使用泛型,然而并没有未卵,所以决定自己写点自己看的明白的基础,弱鸡误喷。
1.泛型在方法中如何引用
思考:如果你不确定你给一个方法传参的类型,这个时候你就可以使用泛型
引用泛型首先你必须申明:
举个栗子:
//方法中使用泛型先声明 public <T> void Test(T t) { } //有返回参 public <T> T Tests(T t) { return t; }
// 泛型方法 printArray public static <E> void printArray(E[] aa) { // 输出数组元素 for (E element : aa) { System.out.printf("%s ", element); } System.out.println(); }
//获取三个参数中的最大值,值的类型必须一直 public <T extends Comparable<T>> T maximum(T x, T y, T z) { T max = x; // 假设x是初始最大值 if (y.compareTo(max) > 0) { max = y; //y 更大 } if (z.compareTo(max) > 0) { max = z; // 现在 z 更大 } return max; // 返回最大对象 }
2.泛型在类中如何引用
泛型么,类一样,如果这个类中有不确定参数类型,你就可以用泛型呀,像List类 Map类他们就是这么搞的呀
举个栗子吧:
NiHao niHao = new NiHao<>(); niHao.t = "这个坑货"; niHao.a = 23; niHao.name = "这个世界不缺傻货"; System.out.println(niHao.toString()); NiHao<Integer> integerNiHao = new NiHao<>(); integerNiHao.t = 12; integerNiHao.a = 15; integerNiHao.name = "坑能多就不要少"; System.out.println(niHao.toString()); System.out.println(new NiHao<>("00", 12, "我来去,泛型其实就是这个鬼").toString());
//泛型类参数是为了传参的 private class NiHao<T> { private T t; private int a; private String name; public NiHao() { } public NiHao(T t, int a, String name) { this.t = t; this.a = a; this.name = name; } public T getT() { return t; } public void setT(T t) { this.t = t; } public int getA() { return a; } public void setA(int a) { this.a = a; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "NiHao{" + "t=" + t + ", a=" + a + ", name='" + name + '\'' + '}'; } } private class Student<T extends Comparable<T>> { }思考:泛型是一种数据类型结构么,不是,说什么集合List的时候,他就是用到泛型搞起不确定参数的,那他是什么鬼?