首页 > 解决方案 > 如何在 Java 函数中将类作为参数发送?

问题描述

我用它的变量创建了不同的类,我正在尝试创建一个在 SQL 数据库中创建表的 Java 程序。问题是我不知道如何将类作为函数中的参数发送。

我正在研究这个功能:

public void createTable (/*Class c ?*/) {

    ArrayList<String> fields = new ArrayList<>();

    for (Field f: c.class.getDeclaredFields()) {

         fields.add(f.getName());
    }

    Statement statement;

    statement = connection.createStatement();    //This part of the function wouldn't work. But let's focus on the question
    statement.execute("insert into " + c.getSimpleName() + "(" + String.join(", ", fields) + ") values" etc...
}

请注意,我想将数据插入 SQL 数据库的函数的第二部分将无法工作,因为它尚未完成。但是,我怎么能在这个函数中接收不同的类(显然有不同的变量)并对所有类做同样的事情?(创建一个带有其字段名称的列表)。

标签: javaclassjdbc

解决方案


这很简单,只需重构如下:

public void createTable (Class c) {

    ArrayList<String> fields = new ArrayList<>();

    for (Field f: c.getDeclaredFields()) {

         fields.add(f.getName());
    }

    Statement statement;

    statement = connection.createStatement();    //This part of the function wouldn't work. But let's focus on the question
    statement.execute("insert into " + c.getSimpleName() + "(" + String.join(", ", fields) + ") values" etc...
}

推荐阅读