定义:就是为了简化代码,可以让代码用指定的数代替形参的数据类型来创建,在使用内,接口,或方法时在定义数据类型
1、泛型类:
-
用于简化代码,假如两个类的方法相同,参数相同,就是参数类型不同,这个时候就可以用泛型类简化代码
-
格式:修饰符 class 类名<类型>{}(例题格式:public class mm<T>{} 此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型)
package 泛型.泛型类;
/**
* 这是一个测试类
*/
public class Generic_Demo {
public static void main(String[] args) {
TT<String> tt=new TT<String>();
tt.setT("java");
System.out.println(tt.getT());
System.out.println("--------------");
TT<Integer> s = new TT<>();
s.setT(89);
System.out.println(s.getT());
}
}
package 泛型.泛型类;
//这是一个泛型类
public class TT<T> {
private T t;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
}
2、泛型方法:
-
当一个类中的多个方法相同,只是参数不同,这个时候可以通过定义一个泛型方法来简化代码
-
格式:修饰符<类型>返回值类型方法名(类型变量名){}
-
范例: public <T> void show(T t){ } 此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型
package 泛型.泛型方法;
/**
* 定义一个泛型的方法
*/
public class Generic{
public <T> void show(T t){
System.out.println(t);
}
}
package 泛型.泛型方法;
/**
* 测试类用于测试泛型方法
*/
public class Generic_Demo02 {
public static void main(String[] args) {
Generic g=new Generic();
g.show("java");
g.show(100);
g.show(true);
g.show(34.78);
}
}
3、泛型接口:
-
格式:修饰符 interface 接口名 <类型> {}
-
范例:
-
创建接口:public interface Generic <T> { }
-
实例化接口时:public class Genericlmpl<T> implements Generic<T>{}
-
package 泛型.泛型接口;
//这是一个泛型接口
public interface Generic<T> {
void show(T t);
}
package 泛型.泛型接口;
//泛型接口的实现类
public class Genericlmpl<T> implements Generic<T> {
@Override
public void show(T t) {
System.out.println(t);
}
}
package 泛型.泛型接口;
//这是一个测试类
public class Generic_Demo03 {
public static void main(String[] args) {
Genericlmpl<String> sg=new Genericlmpl<String>();
sg.show("java");
Genericlmpl<Integer> ig = new Genericlmpl<>();
ig.show(200);
}
}
这是我自己看视频后的一些见解,中间有错误还请大佬告知。