本篇文章主要说明的是泛型类、泛型接口、泛型方法等。
在学习之前,希望能对泛型有个大概了解,可参考链接 java 泛型(上)-CSDN博客
1、泛型类
(1)格式:修饰符 class 类名<类型>{}
(2)范例:public class Generic<T>{}
- 此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型。
(3)代码实现
① Generics类
package generics;
public class Generics<T> {
private T t;
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
}
② GenericsDemo2类
package generics;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class GenericsDemo2 {
public static void main(String[] args) {
Generics<String> s = new Generics<>();
s.setT("张三");
System.out.println(s.getT());
System.out.println("----------");
Generics<Integer> i = new Generics<>();
i.setT(39);
System.out.println(i.getT());
}
}
③ 运行结果
2、泛型方法
(1)格式:修饰符 <T> 返回值类型 方法名(T t){}
(2)范例:public <T> void show(T t){}
(3)代码实现
① Generics2类
package generics;
//方式三
public class Generics2 {
public <T> void show(T t){
System.out.println(t);
}
}
/*
//方式二
public class Generics2<T> {
public void show(T t){
System.out.println(t);
}
}
*/
/*
//方式一
public class Generics2 {
public void show(String s){
System.out.println(s);
}
public void show(int i){
System.out.println(i);
}
public void show(boolean b){
System.out.println(b);
}
}
*/
② GenericsDemo3类
package generics;
public class GenericsDemo3 {
public static void main(String[] args) {
//普通类
// Generics s = new Generics();
// s.show("zahngsna");
//泛型类
// Generics<String> s = new Generics<>();
//s.show("zahngsna");
//泛型方法
Generics2 g= new Generics2();
g.show("zhngsna");
g.show(20);
}
}
③ 运行结果
3、泛型接口
(1)格式:修饰符 interface 接口名<T>{}
(2)范例:public interface Generic<T>{}
(3)代码实现
① Generics3 接口
package generics;
public interface Generics3<T> {
void show(T t);
}
② Generics3Impl类
package generics;
public class Generics3Impl<T> implements Generics3<T>{
@Override
public void show(T t){
System.out.println(t);
}
}
③ GenericsDemo4类
package generics;
public class GenericsDemo4 {
public static void main(String[] args) {
Generics3<String> g3 = new Generics3Impl<>();
g3.show("张三");
System.out.println("--------");
Generics3<Integer> g33 = new Generics3Impl<>();
g33.show(23);
}
}
④ 运行结果
本文为学习笔记,所参考文章均已附上链接,若有疑问请私信!
创作不易,如果对你有点帮助的话麻烦点个赞支持一下!
新手小白,欢迎留言指正!