首页 > 解决方案 > 如何根据条件调用不同的 POJO 实例

问题描述

我有两个 POJO,即具有不同属性集的StudentTeacher 。我有一个功能来打印两个 POJO 的属性,即printStudent()printTeacher()

    printStudent(Student s){
       String res = "";
       res+ = s.getA1();
       res+ = s.getA2();
       res+ = s.getA3();
       System.out.println(res);
    }

    printTeacher(Teacher t){
       String res = "";
       res+ = t.getA1();
       res+ = t.getA2();
       res+ = t.getA3();
       System.out.println(res);
    }

现在我想实现两件事: 1. 循环遍历 POJO 的属性,所以我不必串行地这样做。2. 制作一个泛型函数,根据一个ID选择使用哪个POJO,方法如下:

    print(Object o,id){
      if(id==0){
        String res = loop through student pojo
      }
      else{
        String res = loop through teacher pojo
      }
    }

任何人都可以建议我如何实现这一目标,或者是否有可能?

标签: javaspring-bootspring-mvc

解决方案


您可以使用Lombok 的@ToString注释为您的类生成toString方法。然后你可以有一个通用接口,例如Printable@AzJa 所建议的,并在该接口中编写一个默认方法:

default void print() {
  System.out.println(this.toString());
 }

推荐阅读