我有几个类我想作为参数传递给我的一个方法。如何在传递后获取类变量。例如,如果我想通过一个病人班,我想知道病人姓名,电话号码等。如果我想通过医生课,我想知道医生的做法,姓名等。我想要这些信息,以便我可以将它们放入数据库中。我将为每个班级制作几种方法,但是想知道是否有办法制作一种方法并通过一般班级。传递参数中的一般类
下面是一般的方法我的新代码/方法:
public boolean addNewUser(Object obj)
{
boolean success = false;
int executedValue = 0;
try
{
Connection conn = DBConnection.getConnection();
String query = "INSERT INTO Users (id, firstName, lastName, email, address, phonenumber, dob) VALUES (?,?,?,?,?,?,?)";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, obj.getId); // not possible
}
catch(Exception e)
{
System.out.println(e);
}
return success;
}
这里是我的老办法
public boolean addNewPatient(Patient patient)
{
boolean success = false;
int executedValue = 0;
try
{
Connection conn = DBConnection.getConnection();
String query = "INSERT INTO Users (id, firstName, lastName, email, address, phonenumber, dob) VALUES (?,?,?,?,?,?,?)";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setInt(1,patient.getId());
stmt.setString(2, patient.getFirstName());
etc...
}
catch(Exception e)
{
System.out.println(e);
}
return success;
}
也许你的类实现了一个getAttributes方法的接口,该方法返回你想要的所有属性的数组?既然你想让一些类具有共享功能,这看起来不是坏习惯,但如果我错了,随时纠正我。 –
您可以通过反射API在运行时访问类的字段名称类型等:https://docs.oracle.com/javase/tutorial/reflect/ – brunesto
接口或基类正是如此。 – chrylis