java - 如何根据条件调用不同的 POJO 实例
问题描述
我有两个 POJO,即具有不同属性集的Student和Teacher 。我有一个功能来打印两个 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
}
}
任何人都可以建议我如何实现这一目标,或者是否有可能?
解决方案
您可以使用Lombok 的@ToString
注释为您的类生成toString
方法。然后你可以有一个通用接口,例如Printable
@AzJa 所建议的,并在该接口中编写一个默认方法:
default void print() {
System.out.println(this.toString());
}
推荐阅读
- c# - .csproj 文件在构建解决方案时自动更改?
- date - 如何在 CSML 中添加 1 天时间对象
- c - 嵌入式 C - 易失性限定符在我的中断例程中无关紧要
- amazon-web-services - 授予 AWS Config 对 Amazon S3 存储桶的访问权限
- c++ - 在 C++ 中计算重复项 - 多集?
- ruby - 如何使用 Roda 获取服务器发送的事件
- image-processing - 如何获取图像的特征图?
- flutter - Flutter Moor:moor 没有意识到 `id` 列是主键,我不应该告诉它它应该有什么样的值?
- amazon-web-services - AWS Lambda 未处理正确数量的 DynamoDB 记录
- python - 我的猜谜游戏代码中有什么不正确的地方?