我想知道在運行時檢查變量類型的最佳方法。Java:什麼是在運行時檢查變量類型的最佳方法?
public Iterator<?> read(String entityName, String propertyName, Object propertyValue) {
String query = "select * from " + entityName + " where " + propertyName + "=";
try {
int value = Integer.parseInt((String)propertyValue);
query=query+value;
} catch (NumberFormatException e) {
// failed
}
try {
String value = (String)propertyValue;
query=query+"'"+value+"'";
} catch (ClassCastException e) {
// failed
}
try {
float value = Float.parseFloat((String)propertyValue);
query=query+value;
} catch (NumberFormatException e) {
// failed
}
//Creating JDBC connection and execute query
Iterator<Element> result=queryConn.execute();
return result;
}
我需要在運行時檢查變量類型是int,float還是String。有沒有其他最好的方法來做到這一點?
或者我是否需要爲每個變量類型編寫單獨的方法?
您的代碼不會做你認爲它。例如:如果'propertyValue'爲'「3」',你的代碼將產生一個以'= 3'3'3'結尾的查詢。 – ruakh
此外,請參閱https://en.wikipedia.org/wiki/SQL_injection,瞭解爲什麼你永遠不應該做你現在正在做的事情。 – ruakh