Discuss / Java / 方法参数多余

方法参数多余

Topic source

深蓝738

#1 Created at ... [Delete] [Delete and Lock User]

老师

PooledDataSource.getConnection(String username, String password)

方法的参数是多余的。

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

你仔细看DataSource接口定义的方法,它要求实现两个getConnection():


    @Override
    public Connection getConnection(String username, String password) throws SQLException {
        return ...
    }

    @Override
    public Connection getConnection() throws SQLException {
        return getConnection(this.username, this.password);
    }

深蓝738

#3 Created at ... [Delete] [Delete and Lock User]

抱歉老师,我没了解DataSource接口的方法就提出了这个问题。不过示例代码中调用的方法,还是在实现类中写明白一点比较好。

public Connection getConnection(String username, String password) throws SQLException;

比较奇怪的是上面这个方法没用到,您却写了实现。

public Connection getConnection() throws SQLException;

而这个方法用到了好多次,您却没有写实现。

同意深蓝的观点,对于我们这没研究过DataSource源码的人而言,确实有点疑惑

廖雪峰

#5 Created at ... [Delete] [Delete and Lock User]

这不是你没研究,而是你没动手写。动手写,才会发现哪些方法没有override编译不过。

别吵了,我加上了。

@Override
    public Connection getConnection() throws SQLException {
        return getConnection(username, password);
    }
    @Override
    public Connection getConnection(String username, String password) throws SQLException {


  • 1

Reply