1、场景介绍
在web开发中,存在这种业务逻辑,不同的Vo实体类,需要调用相同的serviceImpl的update更新方法,这种场景我们可以使用java泛型去更好去解决这个问题,减少不必要相同业务逻辑方法的重复实现开发。
2、代码实现
定义两个类,分别为学生类和教师类,设置属性id作为编号,使用lombok的@Data生成getter和setter方法,创建共通方法方法private static <T> void print(T entiy),其中<T>表示使用泛型进行编程,否则后续做类型判断会报错,具体案例实现如下。
import lombok.Data;
/**
* @author Liwei
* @date 2023/2/23 17:23
* @description
*/
public class CertCATest {
@Data
public static class Student{
private String id;
}
@Data
public static class Teacher{
private String id;
}
public static void main(String[] args) {
Student student = new Student();
student.setId("student");
Teacher teacher = new Teacher();
teacher.setId("teacher");
print(teacher);
print(student);
}
/**
* 打印
* @param entiy
* @param <T>
*/
private static <T> void print(T entiy) {
if(entiy instanceof Teacher) {
System.out.println("业务---我是老师");
System.out.println(((Teacher) entiy).getId());
} else if (entiy instanceof Student) {
System.out.println("业务---我是学生");
System.out.println(((Student) entiy).getId());
}
}
}
3、总结
除了java泛型T还有?,具体区别我就不讲了,正确的使用java泛型,能够大大加快开发效率,减少代码重复开发,如果你觉得可以就给点个小爱心吧谢谢支持。