通过该例子可以体现出泛型的重要性。之前学泛型没体会到其中的精华。(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);
}
}
如果不使用泛型,就会根据每一个类型写不同的类。这样导致代码量增加。而且不简洁。通过泛型,我们可以达到其目的。这就是为什么要学习泛型的原因。
集合里用的泛型也挺多。我之前对泛型的认识局限于集合时学的泛型。没想到今天的代码让我一下子懂了泛型的强大。
为什么类型里都是大写的呢?因为是引用类型。
















