关于泛型方法的疑问,对于这种参数没有泛型,返回值为泛型的泛型方法,如何确定泛型的具体类型?

关于泛型方法的疑问,对于这种参数没有泛型,返回值为泛型的泛型方法,如何确定泛型的具体类型?

public <E> E getValue(Connection conn, String sql, Object ...args) {
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            ps = conn.prepareStatement(sql);
            for (int i = 0; i < args.length; i++) {
                ps.setObject(i+1, args[i]);
            }

            rs = ps.executeQuery();
            if (rs.next()){
                return (E)rs.getObject(1);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.closeResource(null,ps,rs);
        }
        return null;
    }

public Long getCount(Connection conn) {
        String sql = "select count(*) from customers";
        return getValue(conn, sql);

    }

运行是成功的,返回了一个Long类型。不明白怎么成功的

根据你调用方法的接受类型判断

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632