我想做这样的事情。我如何在带有泛型的java中做到这一点?
public <T [Integer or String]> Float getFloat(<T> column) throws SQLException{
Float result;
try {
result = ResultSet.getFloat(column);
} catch (NullPointerException e) {
result = null;
}
return result;
}
现在我的代码看起来像这样:
public Float getFloat(String column) throws SQLException{
Float result;
try {
result = rs.getFloat(column);
} catch (NullPointerException e) {
result = null;
}
return result;
}
public Float getFloat(int column) throws SQLException{
Float result;
try {
result = rs.getFloat(column);
} catch (NullPointerException e) {
result = null;
}
return result;
}
我这样做是因为方法rs.getFloat()可能会收到String(Column label)&amp;仅整数(列索引)。但这对我的方法来说并不重要。
答案 0 :(得分:0)
对于仿制药,IMO来说,这似乎不是一个很好的用例。 String
和Integer
都是最终类,所以这里只有2种可能性。似乎重载该方法会更容易。
您可以绑定类似<T extends A & B>
的泛型,但我发现没有能力使用|
运算符进行此类绑定。