java - 在这个特定问题中应用继承的 Java 方法是什么?
问题描述
我有两个 A 类和 B 类,我有一个电子邮件生成脚本。
在 python 中,代码看起来像
def generateEmail(message):
#implementation
def getMessage(item_list):
message = []
for item in item_list:
#do some processing
return message
def main():
#other code
generateEmail(getMessage(item_list_A))
generateEmail(getMessage(item_list_B))
这不适用于 Java,因为它是强类型的。我怎样才能在java中实现这个?
编辑:这里是 A(学生)和 B(教师)类:
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Student{
int studentId;
String studentName;
LocalDate dateOfAddmission;
float percentage;
int currentStd;
String father;
String mother;
LocalDate dob;
String address;
Boolean disability;
}
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Teacher{
int teacherId;
String teacherName;
LocalDate dateOfJoining;
LocalDate dateOfRetirement;
Boolean classTeacher;
int currentStd = null;
LocalDate dob;
String address;
Boolean disability;
}
这是 A 的处理和生成电子邮件类。
public class generateEmail{
public Boolean generateEmail(ArrayList<Student> listOfStudent){
//code to fetch the list of relevant students ids
ArrayList<int> relevantStudents = getRelevantStudents();
ArrayList<String> messageList = new ArrayList<>();
listOfStudent.forEach(student->{
if(relevantStudents.contains(student.getStudentId()){
//create a message string from the student information and add to the message list
}
}
//create an excel sheet with the message strings
//send email
}
}
我需要为教师创建一个类似的报告生成方法,但属性不同,所以我需要帮助。
解决方案
public interface Dummy{
}
public class A implements Dummy{
int studentId;
String studentName;
LocalDate dateOfAddmission;
float percentage;
int currentStd;
String father;
String mother;
LocalDate dob;
String address;
Boolean disability;
}
public class B implements Dummy{
int teacherId;
String teacherName;
LocalDate dateOfJoining;
LocalDate dateOfRetirement;
Boolean classTeacher;
int currentStd = null;
LocalDate dob;
String address;
Boolean disability;
}
public class MainClass{
public static void main(String...array){
//other code
generateEmail(getMessage(itemListA));
generateEmail(getMessage(itemListB));
}
private List<String> getMessage(List<Dummy> itemList){
List<String> message = new ArrayList<>();
for(Dummy item : itemList){
//if required typecast the dummy object and do the processing
//accordingly
//do some processing
}
return message
}
private void generateEmail(List<String> messages){
//Do your processing
}
}
推荐阅读
- crystal-lang - How to rescue/catch an "Error writing file: Broken pipe (Errno)" exception?
- ubuntu-16.04 - 通过连接本地网络上的其他本地计算机,在计算机启动时自动运行脚本
- excel - 使用反向循环删除行 - VB
- linear-regression - 在我的数据集上运行线性回归后,我的 RMSE 即将到来 1109.181
- reactjs - React hooks 如何根据 props 变化更好地更新多个状态
- php - 如何在 foreach 循环 PHP 中使用 2 个数组来选择随机元素
- github - Airflow 代码库正在使用过时的提交。我如何指出它是最新的?
- datatable - 如何设置要在没有分页的角度7数据表中显示的行
- java - Spring Boot Async 将一些数据传递给服务器,等待响应作为文件
- java - 在实施 vigenere 密码时需要帮助