如何在不知道java对象类型的情况下示例化它?

mnowg1ta  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(180)

这个问题在这里已经有答案了

new运算符和class.newinstance()之间有什么区别(10个答案)
使用构造函数参数从类创建新示例(5个答案)
两年前关门了。
我正在做一个数据库项目,我正在将java连接到一个mysql数据库。
在这之后,我的一个同事必须将java连接到服务器,为了使他的工作更简单,我尝试将数据库返回的结果集转换为json。
我使用的是jsonsimple1.1api,我试图避免为每个数据库表创建大量的方法。我的想法是尝试创建一个方法,用正确的类型和名称将它得到的任何东西转换成json。这是我的密码:

(...)                                                                    
ResultSet resultSet = statement.executeQuery();
ResultSetMetaData rsmd = resultset.getMetaData();

// Treat the results and tranform to JSON.
while(resultset.next())
{
    Class<?> objectClass;
    JSONObject obj = new JSONObject();

    for (int i=1; i <= rsmd.getColumnCount(); i++) {
        objectClass = SQLTypeMap.toClass(rsmd.getColumnType(i));

        // This is what I thought would work. As you can guess, it doesn't. 
        obj.put(rsmd.getColumnName(i), new objectClass(resultset.getString(i)));
    }
    result.add(obj);
(...)

sqltypemap是我创建的一个类,它将sql类型Map到java类并返回类本身。
我的问题很简单:有没有什么方法可以在运行前不知道它的类型就示例化一个新的java类?如果是,怎么做?
谢谢您。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题