如何在Java函数中将类作为参数发送?

问题描述 投票:0回答:2

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

我正在使用此功能:

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数据库中插入数据的函数的第二部分将无法正常运行,因为它尚未完成。但是,如何在此函数中接收不同的类(显然具有不同的变量),并对所有类执行相同的操作? (创建一个具有字段名称的列表)。

java class jdbc
2个回答
0
投票

对于在此问题中寻找答案的任何人,这对我都有效:

public void createTable(Class c){

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

Object ob = c.newInstance();    

for (Field f: ob.getClass().getDeclaredFields()) {

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

// etc...

}


0
投票

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

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...
}
© www.soinside.com 2019 - 2024. All rights reserved.