希望各位能够留下你们美丽的赞和评论谢谢,或者有好的资源帮帮小编提升实力一起努力,奥里给!!
拒绝垃圾视频:超级好的视频,建议从头开始看:https://www.bilibili.com/video/BV16K4y1x7Gi?p=42
泛型
一、泛型概念
概念:把类型作为参数传递。(泛型类、泛型接口、泛型方法)
好处:
(1)提高代码重用性
(2)防止类型转换异常,提高代码的安全性
二、泛型类、接口、方法
2.1泛型类
注意:
1、泛型只能使用引用类型。
2、不同泛型对象之间不能相互赋值。
代码示例:
泛型类FanXingDemo1
package cn.itcast.study;
/**
* 泛型类
* 语法:类名<T>
* T表示占位符,表示引用类型,如果多个用逗号隔开
* @author 11218
*
*/
public class FanXingDemo1<T> {
//使用泛型T
//创建变量
T t;
//添加方法
public void show(T t) {
System.out.println(t);
}
//使用泛型作为返回值
public T getT() {
return t;
}
}
泛型测试类FanXingTest1
package cn.itcast.study;
public class FanXingTest1 {
public static void main(String[] args) {
//使用泛型类创建对象
//注意1泛型只能使用引用类型2不同泛型对象之间不能相互赋值
FanXingDemo1<String> fanXingDemo1=new FanXingDemo1<String>();
fanXingDemo1.t="hello";
fanXingDemo1.show("大家好");
String string=fanXingDemo1.getT();
System.out.println(fanXingDemo1.t);
System.out.println(string);
FanXingDemo1<Integer> fanXingDemo2=new FanXingDemo1<Integer>();
fanXingDemo2.t=100;
fanXingDemo2.show(200);
Integer integer=fanXingDemo2.getT();
System.out.println(fanXingDemo2.t);
System.out.println(integer);
}
}
2.2 泛型接口
注意:
1.泛型接口的实现类创建后要么固定泛型,要么还是泛型。
泛型接口
package cn.itcast.study;
/**
* 泛型接口
* 语法:接口名<T>
* 注意:泛型不能泛型静态常量
* @author 11218
*
*/
public interface FanXingDemo2<T> {
String name="张三";
T server(T t);
}
第一种固定泛型
package cn.itcast.study;
public class FanXingImpl implements FanXingDemo2<String>{
//实现接口时要把泛型固定
@Override
public String server(String t) {
System.out.println(t);
return null;
}
}
测试代码
FanXingImpl impl = new FanXingImpl();
impl.server("加油吧少年!!!");
第二种泛型化
package cn.itcast.study;
public class FanXingImpl2<T> implements FanXingDemo2<T>{
@Override
public T server(T t) {
System.out.println(t);
return t;
}
}
测试代码
FanXingImpl2<Integer> fanXingImpl2 = new FanXingImpl2<Integer>();
fanXingImpl2.server(2);
2.3 泛型方法
注意:泛型方法的运用只要将传入的参数直接放进去就可以无需固定。
示例代码:
泛型方法FanXingDemo3
package cn.itcast.study;
/**
* 泛型方法
* 语法:<T> 返回值类型
* @author 11218
*
*/
public class FanXingDemo3 {
//泛型方法
public <T> T show(T t) {
System.out.println("泛型方法"+t);
return t;
}
}
测试
FanXingDemo3 fanXingDemo3 = new FanXingDemo3();
fanXingDemo3.show("中国加油!");
2.4 泛型集合
重点:泛型集合,集合泛型被固定,那么会被约束,所固定的引用就是界定,两个不同固定的约束集合不能相互赋值,同时在编代码时还会自动排错,赋值非此类型在编译阶段会报错,提示代码编写人员。
实例代码:
package cn.itcast.study;
import java.util.ArrayList;
//泛型集合
public class FanXingDemo4 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("你好");
list.add("加油吧!");
ArrayList<Integer> list2 = new ArrayList<Integer>();
list2.add(1);
}
}