我有幾個類我想作爲參數傳遞給我的一個方法。如何在傳遞後獲取類變量。例如,如果我想通過一個病人班,我想知道病人姓名,電話號碼等。如果我想通過醫生課,我想知道醫生的做法,姓名等。我想要這些信息,以便我可以將它們放入數據庫中。我將爲每個班級製作幾種方法,但是想知道是否有辦法制作一種方法並通過一般班級。傳遞參數中的一般類
下面是一般的方法我的新代碼/方法:
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