Java泛型在方法中放置String或Integer参数

时间:2016-06-10 11:55:25

标签: java generics

我想做这样的事情。我如何在带有泛型的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;仅整数(列索引)。但这对我的方法来说并不重要。

1 个答案:

答案 0 :(得分:0)

对于仿制药,IMO来说,这似乎不是一个很好的用例。 StringInteger都是最终类,所以这里只有2种可能性。似乎重载该方法会更容易。

您可以绑定类似<T extends A & B>的泛型,但我发现没有能力使用|运算符进行此类绑定。