通过该例子可以体现出泛型的重要性。之前学泛型没体会到其中的精华。(C时代)

这是一个泛型类

package com.tjrac;

public class Generic <T>{
    private T t;
    public T getT(){
        return t;
    }
    public void setT(T t){
        this.t=t;
    }
}
package com.tjrac;

public class GenericTest {
    public static void main(String[] args) {
        //实例化泛型为字符串型
        Generic<String> g1=new Generic<String>();
        //实例化泛型为整型
        Generic<Integer>g2=new Generic<Integer>();
        //实例化泛型为浮点型
        Generic<Double>g3=new Generic<Double>();
        //实例化泛型为布尔类型
        Generic<Boolean>g4=new Generic<Boolean>();
        System.out.println("-----------字符串型的泛型");
        g1.setT("袁欢");
        System.out.println(g1.getT());
        System.out.println("--------------整型的泛型");
        g2.setT(19);
        System.out.println(g2.getT());
        System.out.println("-----------浮点型的泛型");
        g3.setT(23.233);
        System.out.println(g2.getT());
        System.out.println("----------------boolean泛型");
        g4.setT(true);
        System.out.println(g4.getT());
    }
}

 

 

泛型方法:

定义格式
修饰符<类型>返回值类型方法名(类型变量名){ }

package com.tjrac;

public class GenericMethod {
    public <T>void  display(T t){
        //泛型方法
        System.out.println(t);
    }
}

 

 

测试类:

package com.tjrac;

public class GenericMethodDemo {
    public static void main(String[] args) {
        GenericMethod g=new GenericMethod();
        g.display("yuan");
        g.display(1243);
        g.display(12.33);
        g.display(true);
    }
}

 

泛型接口:

定义格式
修饰符interface接口名<类型>{ }

package com.tjrac;

public interface GenericIterface <T>{
    public  void show(T t);
}

 

实现方法:

package com.tjrac;

public class GenericInterfaceM<T> implements GenericIterface<T>{
    @Override
    public void show(T t) {
        System.out.println(t);
    }
}

 

测试类

package com.tjrac;

public class GenericInterfaceTest {
    public static void main(String[] args) {
        GenericInterfaceM g=new GenericInterfaceM();
        g.show("袁欢");
        g.show(14);
        g.show(true);
    }
}


 

如果不使用泛型,就会根据每一个类型写不同的类。这样导致代码量增加。而且不简洁。通过泛型,我们可以达到其目的。这就是为什么要学习泛型的原因。

集合里用的泛型也挺多。我之前对泛型的认识局限于集合时学的泛型。没想到今天的代码让我一下子懂了泛型的强大。

为什么类型里都是大写的呢?因为是引用类型。