目录
一、泛型类
书写格式: 类名<自定义字符>
案例:
package com.wxl.springbootpro01;
import org.junit.jupiter.api.Test;
public class MyTest {
@Test
public void test(){
Dog<String> dog=new Dog<String>();
dog.setAttr("name-->Jack");
System.out.println(dog.getAttr());
Dog dog2=new Dog();
dog2.setAttr(11);
System.out.println(dog2.getAttr());
dog2.setAttr(true);
System.out.println(dog2.getAttr());
}
}
class Dog<T>{
private T attr;
public T getAttr() {
return attr;
}
public void setAttr(T attr) {
this.attr = attr;
}
}
结果:
二、泛型方法
package com.wxl.springbootpro01;
import org.junit.jupiter.api.Test;
public class MyTest {
@Test
public void test(){
Dog dog=new Dog();
dog.getAttr("Jack");
dog.getAttr(12);
dog.getAttr(true);
}
}
class Dog{
public <T> void getAttr(T t) {
System.out.println(t);
}
}
结果:
三、泛型接口
package com.wxl.springbootpro01;
import org.junit.jupiter.api.Test;
public class MyTest {
@Test
public void test(){
Dog dog=new Dog();
dog.biteSkill("hhh");
dog.biteSkill(123);
dog.biteSkill("Jack");
}
}
class Dog<T> implements bite<T>{
@Override
public void biteSkill(T t) {
System.out.println(t);
}
}
interface bite<T>{
public abstract void biteSkill(T t);
}
结果:
总结:
可以看到泛型类节省了很大的代码量,不用再重复书写不同类型参数的方法,并且减少了类型转换。